我们有一个项目(日志库),由标准的asp.net应用程序(4.0框架)和sharepoint解决方案(3.5框架)使用。
有没有办法定义这两个目标,以便在构建项目时构建两个版本?
此外,任何人都实现了这样的东西并通过nuget分发?在nuget上发布这两个版本的最佳方法是什么?
谢谢
答案 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#项目。