проверить, определено ли свойство MSBuild? - PullRequest
19 голосов
/ 10 февраля 2011

В 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 Ответ

37 голосов
/ 10 февраля 2011

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

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

...