您可以在解决方案中混合使用.NET Framework版本吗?
我工作的代码库是.NET 2.0。 对于我们的新程序集/ DLL / Web应用程序,我想利用3.5提供的功能。
一个解决方案中可以混合使用.NET框架(按程序集)吗? 是否有与IIS相关的警告?
我很想听听任何正面/负面/如何反馈。 让我知道!
谢谢!
是的,您可以在Visual Studio中执行此操作,它称为多目标。
Scott Guthrie在Visual Studio中有一个关于多目标支持的很棒的博客文章。
VS 2008是VS的第一个版本 包含的Visual Studio .NET的多目标支持。 这意味着您可以使用 VS 2008不仅可以创建和编辑 .NET 3.5项目,还有.NET 3.0 和.NET 2.0项目。 这个 允许开发人员更快地 升级并利用新的 Visual Studio工具功能– 不必一定要 .NET的较新版本 安装在客户端上 生产服务器运行其 应用程序。
干杯
您可以根据以下条件一起使用2.0、3.0和3.5:[http://msdn.microsoft.com/zh-cn/library/bb383796(v=vs.90).aspx]
编辑:我错了,你可以。 您可以在2.0中引用3. +程序集,因为CLR是相同的。 从2.0 / 3. +升级到4.0时,情况并非如此,因为有一个新版本的CLR。
[HTTP://阿卜杜拉林.com/how-to-use-net-35-syntax-安定-compiler-features-佛如-net-20/]
如果您可以等待新的.NET 4.0框架,则可以在同一过程中并排运行每个版本的dll。
这应该不是问题。 通过.NET 3.5 SP2的.NET 2.0 RTM均使用完全相同的CLR版本。 它们仅因所包含的程序集数量不同而不同。 汇编格式是相同的。 当然,如果您确实利用了.NET 3.5仅包含的程序集,则必须确保在目标计算机上实际安装了3.5。 如果不是这样,您会很快发现。
如果已启用Windows Update,则3.5应该已经在计算机上。 如果没有,那么要花上十几分钟才能到达那里。
附带说明一下,我们有一些旧的1.0库,我们在2.0中使用了它们,但仍在3.5中使用它们,而无需重新编译。 因此那里有一些向后兼容。
您不能让.Net 1.1程序集与.Net 2.0+程序集在同一进程中运行-尝试这样做将产生故障。
对于IIS,这意味着您不能在与.Net 2.0及更高版本的站点相同的应用程序池中运行.Net 1.1站点/虚拟目录-您需要创建一个单独的应用程序池,以保持.Net 1.1代码在 不同的过程。 (这只能在IIS 6.0及更高版本中完成,即不能在Windows XP中完成)
但是,正如nobugz所说-.Net 2.0到.Net 3.5都使用相同的CLR,因此可以在同一程序集中混合使用不同版本的.Net代码,而不必担心-对于IIS(.Net 2.0和.Net 3.5代码可以很高兴地在同一个应用程序池中共存)