测试是否定义了MSBuild属性?

Sta*_*ino 19 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>
Run Code Online (Sandbox Code Playgroud)

Ser*_*kov 37

存在用于覆盖属性的常用方法.

来自C:\ Windows\Microsoft.NET\Framework\v4.0.30319\Microsoft.Common.targets的示例

   <PropertyGroup>
       <TargetFrameworkIdentifier Condition="'$(TargetFrameworkIdentifier)' == ''">.NETFramework</TargetFrameworkIdentifier>
       <TargetFrameworkVersion Condition=" '$(TargetFrameworkVersion)' == '' ">v4.0</TargetFrameworkVersion>
   </PropertyGroup>
Run Code Online (Sandbox Code Playgroud)

如果您尝试从$(NeverDefinedProperty)获取值,您只需获得一个空字符串.你能描述一下你想要解决的问题吗?

  • 不是我想要的答案,但我承认它是正确的,因此很有用。 (2认同)