测试是否定义了MSBuild属性?

时间:2011-02-10 00:06:28

标签: msbuild msbuild-propertygroup

在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 个答案:

答案 0 :(得分:35)

存在覆盖属性的常用方法。

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)获取价值,您只需获得一个空字符串。 你能描述一下你想要解决的问题吗?