25

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

1 に答える 1

47

プロパティをオーバーライドするための一般的な方法が存在します。

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)から値を取得しようとすると、空の文字列が取得されます。解決したい問題を説明できますか?

于 2011-02-10T09:34:05.537 に答える