Проверить, определено ли свойство MSBuild?
В MsBuild возможно ли создать условие MSBuild (или другую ситуацию), которое будет определять, определено ли свойство "определено" (предполагая, что это раньше было присвоить свойство значение где-нибудь)?
Следующее кажется слишком неуклюжим, чтобы быть надежным:
<PropertyGroup Label="Undefined State">
<Defined></Defined>
</PropertyGroup>
<Choose>
<When Condition="('$(Defined)' == '' OR '$(Defined)' != '')">
<Message Text="Defined is probably/likely/assuredly defined"/>
</When>
<Otherwise>
<Message Text="Defined is reportedly/maybe/possibly not defined"/>
</Otherwise>
<Choose>
Ответы
Ответ 1
Существует общий метод переопределения свойств.
Пример из C:\Windows\Microsoft.NET\Framework\v4.0.30319\Microsoft.Common.targets
<PropertyGroup>
<TargetFrameworkIdentifier Condition="'$(TargetFrameworkIdentifier)' == ''">.NETFramework</TargetFrameworkIdentifier>
<TargetFrameworkVersion Condition=" '$(TargetFrameworkVersion)' == '' ">v4.0</TargetFrameworkVersion>
</PropertyGroup>
Если вы попытаетесь получить значение из $(NeverDefinedProperty), вы получите пустую строку.
Можете ли вы описать проблему, которую хотите решить?