2011-02-10 17 views
18

MsBuildでは、プロパティが '定義されている'かどうかを評価する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> 

答えて

31

Cからのサンプル:\ WINDOWS \ Microsoft.NET \ Frameworkの\ v4.0.30319ののの\ Microsoft.Common.targets

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

あなたは$(NeverDefinedProperty)から値を取得しようとした場合、あなたは空の文字列を取得するだけです。 解決したい問題を説明できますか?

+1

私が欲しかった答えではありませんが、それは正しいので、有用であると認めます。 –

関連する問題