我们有一个标准的asp.net应用程序(4.0框架)和sharepoint解决方案(3.5框架)使用的项目(日志库)。实现一个面向3.5和4.0的.Net项目
有没有一种方法来定义两个目标,以便当我们构建项目时,两个版本都被构建?
此外,任何人都实现了这样的事情,并通过nuget分发它?在nuget上发布两个版本的最佳方法是什么?
感谢
我们有一个标准的asp.net应用程序(4.0框架)和sharepoint解决方案(3.5框架)使用的项目(日志库)。实现一个面向3.5和4.0的.Net项目
有没有一种方法来定义两个目标,以便当我们构建项目时,两个版本都被构建?
此外,任何人都实现了这样的事情,并通过nuget分发它?在nuget上发布两个版本的最佳方法是什么?
感谢
答案是<supportedRuntime>
config元素。这使您可以指定应用程序可以支持并在其下运行的所有.NET运行时。当然,在您的应用程序中,您只能使用.NET框架提供的所有选定版本的功能。
总之,你应该有这个在你的配置:
<configuration>
<startup>
<supportedRuntime version="v2.0.50727"/>
<supportedRuntime version="v4.0"/>
</startup>
</configuration>
这可能需要您的应用程序最初是针对到.NET 3.5的<supportedRuntime>
允许版本往上走,而不是往下走。
您可以创建两个C#项目(的csproj文件),您有相同的源文件(或多个项目,具体取决于您的结构)。 一个项目的目标应该是.NET 3.5,另一个是.NET 4.0。
如果您想使用特定于.NET 4.0的功能,那么您可以使用.NET 4项目中定义的conditional compilation symbols来实现。
或者,你也可以添加一个或多个解决方案(用于VS2008和VS2010),每一个使用C#项目之一..
如果你不使用4.0功能,为什么你只是不发布3.5?您的lib将可以在3.5和4.0中使用! –
最好的方法是只编译两次项目。 –