2011-02-10 17 views
18

In MsBuild, è possibile creare una condizione MSBuild (o un'altra situazione) che valuterà se una Proprietà è 'definita' (presumendo che questo sia precedente all'assegnazione della proprietà di un valore da qualche parte)?test se è stata definita una proprietà MSBuild?

Quanto segue sembra un po 'troppo goffo per essere affidabile:

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

risposta

31

Esiste metodo comune per superiori proprietà.

d'esempio della C: \ Windows \ Microsoft.NET \ Framework \ v4.0.30319 \ Microsoft.Common.targets

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

Se si cercherà di ottenere valore da $ (NeverDefinedProperty) voi prendi solo una stringa vuota. Puoi descrivere il problema che vuoi risolvere?

+1

Non è la risposta che volevo, ma ammetto che è corretto e quindi utile. –

Problemi correlati