2011-02-10 4 views
18

В 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> 

ответ

31

Там существует общий метод для переопределения свойств.

Пример из 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) вас просто введите пустую строку. Опишите проблему, которую вы хотите решить.

+1

Не тот ответ, который я хотел, но признаю, что это правильно и поэтому полезно. –

Смежные вопросы