Сбой PropertyGroup для свойства, которое содержит путь - PullRequest
0 голосов
/ 05 февраля 2019

Я пытался реорганизовать скрипт сборки и указать путь в одном месте, вместо того, чтобы копировать его везде - однако по какой-то причине я не могу заставить свое свойство работать.

myprops.props

<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
    <PropertyGroup>
        <NetworkDeploymentRoot>\\FNFS-FS01\projects%24\company\product\deployment\mobile</NetworkDeploymentRoot>
        <XFVerbosity>0</XFVerbosity>
        <IsSymbolUploadSupported>0</IsSymbolUploadSupported>
        <IsSymbolUploadEnabled>1</IsSymbolUploadEnabled>
        <CopyToNetworkShare>0</CopyToNetworkShare>
        <GetAgentUploadConfirmation>0</GetAgentUploadConfirmation>
        <AgentConfirmedUpload>1</AgentConfirmedUpload>
        <CreateSvnBranch>0</CreateSvnBranch>
    </PropertyGroup>

    <PropertyGroup Condition=" '$(Configuration)' == 'Ad-Hoc' ">
        <IsSymbolUploadEnabled>1</IsSymbolUploadEnabled>
        <CopyToNetworkShare>1</CopyToNetworkShare>
        <GetAgentUploadConfirmation>0</GetAgentUploadConfirmation>
        <AgentConfirmedUpload>1</AgentConfirmedUpload>
    </PropertyGroup>

    <PropertyGroup Condition=" '$(Configuration)' == 'Release' ">
        <IsSymbolUploadEnabled>1</IsSymbolUploadEnabled>
        <CopyToNetworkShare>1</CopyToNetworkShare>
        <GetAgentUploadConfirmation>0</GetAgentUploadConfirmation>
        <AgentConfirmedUpload>1</AgentConfirmedUpload>
    </PropertyGroup>

    <PropertyGroup Condition=" '$(Configuration)' == 'AppStore' ">
        <IsSymbolUploadEnabled>1</IsSymbolUploadEnabled>
        <CopyToNetworkShare>1</CopyToNetworkShare>
        <GetAgentUploadConfirmation>0</GetAgentUploadConfirmation>
        <AgentConfirmedUpload>1</AgentConfirmedUpload>
    </PropertyGroup>
</Project>

mytarget.targets

<Import Project="myprops.props" />

<Target Name="TestTarget3" AfterTargets="CopyIpaFromMac">
    <Message Importance="High" Text="AfterTarget CopyIpaFromMac" />
    <Message Importance="High" Text="Test: Dollar Configuration $(Configuration)" />
    <Message Importance="High" Text="Test: Dollar CopyToNetworkShare $(CopyToNetworkShare)" />
    <Message Importance="High" Text="Test: Dollar XFVerbosity $(XFVerbosity)" />
    <Message Importance="High" Text="Test: Dollar NetworkDeploymentRoot $(NetworkDeploymentRoot)" />
    <Error Text="NetworkDeploymentRoot Property is not set" Condition="'$(NetworkDeploymentRoot)' == '' AND $(BuildIpa) == 'true'"/>
</Target>

Все мои свойства флагов работают очень хорошо - однако путь всегда кажется пустым.Изначально у меня были проекты $, и я решил, что мне придется избежать этого, но это все еще не исправило это.

Кто-нибудь понял, почему это не работает для общих сетевых путей?

1 Ответ

0 голосов
/ 09 февраля 2019

Код, который вы показываете, работает нормально, это означает, что проблема в коде, который вы не показываете: с данным кодом, единственный способ $(NetworkDeploymentRoot) может быть пустым в TestTarget3, если какая-то другая цель делает его пустым.Протестировал это с несколькими версиями MsBuild, чтобы убедиться, что после удаления части AfterTargets = "CopyIpaFromMac" вывод всегда равен

>> msbuild mytarget.props /t:TestTarget3 /nologo
Build started 09-Feb-19 09:12:23.
Project "mytarget.props" on node 1 (TestTarget3 target(s)).
TestTarget3:
  AfterTarget CopyIpaFromMac
  Test: Dollar Configuration
  Test: Dollar CopyToNetworkShare 0
  Test: Dollar XFVerbosity 0
  Test: Dollar NetworkDeploymentRoot \\FNFS-FS01\projects$\company\product\deployment\mobile
Done Building Project "mytarget.props" (TestTarget3 target(s)).
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...