msbuild msbuild-propertygroup

¿Probar si una propiedad de MSBuild está definida?



msbuild-propertygroup (1)

Existe un método común para anular propiedades.

Ejemplo de C: / Windows / Microsoft.NET / Framework / v4.0.30319 / Microsoft.Common.targets

<PropertyGroup> <TargetFrameworkIdentifier Condition="''$(TargetFrameworkIdentifier)'' == ''''">.NETFramework</TargetFrameworkIdentifier> <TargetFrameworkVersion Condition=" ''$(TargetFrameworkVersion)'' == '''' ">v4.0</TargetFrameworkVersion> </PropertyGroup>

Si intenta obtener un valor de $ (NeverDefinedProperty) , solo obtiene una cadena vacía. ¿Puedes describir el problema que quieres resolver?

En MsBuild, ¿es posible crear una condición MSBuild (u otra situación) que evalúe si una propiedad está ''definida'' (suponiendo que esto es anterior a asignar un valor a la propiedad en algún lugar)?

Lo siguiente parece un poco torpe para ser confiable:

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