2011-02-10 24 views
18

En MsBuild, ¿es posible crear una condición MSBuild (u otra situación) que evaluará si una propiedad está 'definida' (suponiendo que esto es anterior a asignar un valor a la propiedad en alguna parte)?prueba si se define una propiedad MSBuild?

El siguiente parece un poco demasiado 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> 

Respuesta

31

Existe método común para la redefinición de las propiedades.

muestra de la 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 va a tratar de obtener el valor de $ (NeverDefinedProperty) que acaba de obtener una cadena vacía. ¿Puedes describir el problema que quieres resolver?

+1

No era la respuesta que quería, pero admito que es correcta y, por lo tanto, útil. –

Cuestiones relacionadas