测试是否定义了MSBuild属性?

测试是否定义了MSBuild属性?,msbuild,msbuild-propertygroup,Msbuild,Msbuild Propertygroup,在MsBuild中,是否可以创建一个MsBuild条件(或其他情况),以评估某个属性是否已“定义”(假定这是在某个位置为该属性赋值之前) 以下内容似乎过于笨拙,不可靠: <PropertyGroup Label="Undefined State"> <Defined></Defined> </PropertyGroup> <Choose> <When Condition="('$(Defined)' == ''

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

存在覆盖属性的通用方法

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


.NETFramework
v4.0
如果您试图从$(NeverDefinedProperty)获取值,您只会得到一个空字符串。
你能描述一下你想解决的问题吗?

不是我想要的答案,但我承认它是正确的,因此很有用。
   <PropertyGroup>
       <TargetFrameworkIdentifier Condition="'$(TargetFrameworkIdentifier)' == ''">.NETFramework</TargetFrameworkIdentifier>
       <TargetFrameworkVersion Condition=" '$(TargetFrameworkVersion)' == '' ">v4.0</TargetFrameworkVersion>
   </PropertyGroup>