2012-06-26 30 views
2

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

有没有一种方法来定义两个目标,以便当我们构建项目时,两个版本都被构建?

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

感谢

+5

如果你不使用4.0功能,为什么你只是不发布3.5?您的lib将可以在3.5和4.0中使用! –

+0

最好的方法是只编译两次项目。 –

回答

2

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

总之,你应该有这个在你的配置:

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

这可能需要您的应用程序最初是针对到.NET 3.5的<supportedRuntime>允许版本往上走,而不是往下走。

1

您可以创建两个C#项目(的csproj文件),您有相同的源文件(或多个项目,具体取决于您的结构)。 一个项目的目标应该是.NET 3.5,另一个是.NET 4.0。

如果您想使用特定于.NET 4.0的功能,那么您可以使用.NET 4项目中定义的conditional compilation symbols来实现。

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

相关问题