1

MsBuild の条件に応じて、NET 3.5 または NET 4.0 に展開する必要がある一連のツールがあります。現時点では、これを処理するためにこれらのユーティリティのプロジェクト ファイルを変更したいと考えています。次のようなことができることを認識しています。

<TargetFrameworkVersion Condition="">v3.5</TargetFrameworkVersion>

私たちにとって明確でないのは、条件に応じて異なるバージョンの NET をどのように指定できるかということです。condition プロパティは、1 から 4 までの数値を返す int であり、その値に応じて別の NET フレームワークをターゲットにし、もちろん app.config のこのプロパティも変更する必要があります。

<startup>
   <supportedRuntime version="v2.0.50727"/>
</startup>

この種の問題を処理する正しい方法を知りたいです。

4

1 に答える 1

3

MSBuild ファイルで、このような条件を次々に指定できます。

<TargetFrameworkVersion Condition="$(ConditionProperty) == '1'">v1.1.xxxx</TargetFrameworkVersion>
<TargetFrameworkVersion Condition="$(ConditionProperty) == '2'">v2.0.xxxx</TargetFrameworkVersion>
<TargetFrameworkVersion Condition="$(ConditionProperty) == '3'">v3.5.xxxx</TargetFrameworkVersion>
<TargetFrameworkVersion Condition="$(ConditionProperty) == '4'">v4.0.xxxx</TargetFrameworkVersion>

したがって、値を変更するコードを書くことができます

<startup>
   <supportedRuntime version="v2.0.50727"/>
</startup>

$(TargetFrameworkVersion)以下のコードを使用して変数の値を使用することにより、 app.cofig ファイルでも次のようにします。

<XmlUpdate XmlFileName="app.config"
           XPath="//startup/supprtedRuntime[@version]"
           Value="$(TargetFrameworkVersion)" />
于 2013-02-20T12:39:53.600 に答える