你可以混合.NET框架版本的解决scheme吗?

我工作的代码库是.NET 2.0。 对于我们新的程序集/ DLL / Web应用程序,我很想利用3.5提供的function。

可以在一个解决scheme中混合.NET框架(每个程序集)吗? 有没有任何IIS相关的警告呢?

我很乐意听到任何积极/消极/如何反馈。 让我知道!

谢谢!

是的,你可以在Visual Studio中做到这一点,它被称为多目标

Scott Guthrie 在Visual Studio的多目标支持方面有很好的博客文章。

VS 2008是Visual Studio的第一个版本,包括对.NET的多目标支持。 这意味着您可以使用VS 2008来创build和编辑.NET 3.5项目,而且还可以使用.NET 3.0和.NET 2.0项目。 这使开发人员能够更快速地升级和利用新的Visual Studio工具function,而无需将更新版本的.NET安装在运行其应用程序的客户端和生产服务器上。

干杯

您可以使用2.0,3.0和3.5一起根据: http : //msdn.microsoft.com/en-us/library/bb383796(v=vs.90).aspx

如果你可以等待新的.NET 4.0框架,你将能够在同一个进程中并排运行每个版本的dll。

编辑:我错了,你可以。 你可以在2.0中参考3. +程序集,因为CLR是一样的。 由于CLR的新版本,从2.0 / 3. +到4.0将不会如此。

http://abdullin.com/how-to-use-net-35-syntax-and-compiler-features-for-net-20/

这不应该是一个问题。 .NET 2.0 RTM到.NET 3.5 SP2都使用完全相同的CLR版本。 它们只是包含的程序集数量不同。 汇编格式是一样的。 当然,如果您确实利用了.NET 3.5中包含的程序集,则必须确保目标机器上实际安装了3.5。 如果不是,你会很快发现。

3.5已经在机器上,如果它启用了Windows Update。 如果不是的话,需要十几分钟才能到达那里。

作为一个方面说明,我们有一些旧的1.0库,我们在2.0中使用,仍然在3.5中使用,无需重新编译。 所以这里有一些向后的兼容性。

.net 1.1 assmeblies不能像.Net 2.0+程序集一样运行,试图这样做会导致失败。

对于IIS,这意味着您不能在.Net 2.0及以上站点运行相同的应用程序池中的.Net 1.1站点/虚拟目录 – 您需要创build一个单独的应用程序池,以保持.net 1.1代码运行在不同的过程。 (这只能在IIS 6.0及更高版本中完成,即不能在Windows XP中完成)

然而,正如nobugz所说 – .net 2.0到.net 3.5都使用相同的CLR,所以不同版本的.Net代码可以在同一个程序集中混合使用,而不用担心 – 这也适用于IIS(.Net 2.0和.Net 3.5代码可以愉快地共存在同一个应用程序池中)