MSBuild,条件NET运行时

时间:2013-02-20 12:24:14

标签: msbuild

我有一组需要在.NET 3.5或.NET 4.0上部署的工具,具体取决于MsBuild条件。目前我们想要更改这些实用程序的项目文件来处理这个问题。 我们知道我们可以这样做:

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

我们不清楚的是,我们如何根据条件指定不同版本的NET。 condition属性是一个返回1到4之间的数字的int,根据该值,我们应该定位一个不同的.NET框架,当然也会改变app.config中的这个属性

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

我想知道处理此类问题的正确方法是什么。

1 个答案:

答案 0 :(得分: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>

在app.cofig文件中,并使用以下代码使用变量$(TargetFrameworkVersion)的值:

<XmlUpdate XmlFileName="app.config"
           XPath="//startup/supprtedRuntime[@version]"
           Value="$(TargetFrameworkVersion)" />