1

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

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

我们不清楚的是如何根据条件指定不同版本的 NET。condition 属性是一个 int,它返回一个介于 1 和 4 之间的数字,根据该值,我们应该针对不同的 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>

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

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