实现针对3.5和4.0的.Net项目

时间:2012-06-26 14:40:29

标签: .net msbuild nuget

我们有一个项目(日志库),由标准的asp.net应用程序(4.0框架)和sharepoint解决方案(3.5框架)使用。

有没有办法定义这两个目标,以便在构建项目时构建两个版本?

此外,任何人都实现了这样的东西并通过nuget分发?在nuget上发布这两个版本的最佳方法是什么?

谢谢

2 个答案:

答案 0 :(得分:2)

答案是<supportedRuntime>配置元素。这允许您指定应用程序可以支持和运行的所有.NET运行时。当然,在您的应用程序中,您只能使用所有您选择的.NET框架版本提供的功能。

简而言之,您应该在配置中使用此功能:

<configuration>
  <startup>
    <supportedRuntime version="v2.0.50727"/>
    <supportedRuntime version="v4.0"/>
  </startup>
</configuration>

可能有必要将您的应用程序最初定位到.NET 3.5,因为<supportedRuntime>允许升级版本而不是关闭。

答案 1 :(得分:1)

您可以创建两个C#项目(csproj文件),其中包含相同的源文件(或更多项目,具体取决于您的结构)。 一个项目应针对.NET 3.5,另一个应针对.NET 4.0。

如果要使用特定于.NET 4.0的功能,则可以使用.NET 4项目中定义的conditional compilation symbols来执行此操作。

或者,您也可以添加一个或多个解决方案(适用于VS2008和VS2010),每个解决方案都使用一个C#项目。