您可以在解决方案中混合使用.NET Framework版本吗?

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

一个解决方案中可以混合使用.NET框架(按程序集)吗? 是否有与IIS相关的警告?

我很想听听任何正面/负面/如何反馈。 让我知道!

谢谢!

Micah asked 2020-08-12T07:11:08Z
7个解决方案
19 votes

是的,您可以在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的较新版本 安装在客户端上 生产服务器运行其 应用程序。

干杯

Faizan S. answered 2020-08-12T07:11:27Z
6 votes

您可以根据以下条件一起使用2.0、3.0和3.5:[http://msdn.microsoft.com/zh-cn/library/bb383796(v=vs.90).aspx]

BG BG answered 2020-08-12T07:12:02Z
4 votes

编辑:我错了,你可以。 您可以在2.0中引用3. +程序集,因为CLR是相同的。 从2.0 / 3. +升级到4.0时,情况并非如此,因为有一个新版本的CLR。

[HTTP://阿卜杜拉林.com/how-to-use-net-35-syntax-安定-compiler-features-佛如-net-20/]

kemiller2002 answered 2020-08-12T07:12:27Z
3 votes

如果您可以等待新的.NET 4.0框架,则可以在同一过程中并排运行每个版本的dll。

Ross Hambrick answered 2020-08-12T07:12:47Z
2 votes

这应该不是问题。 通过.NET 3.5 SP2的.NET 2.0 RTM均使用完全相同的CLR版本。 它们仅因所包含的程序集数量不同而不同。 汇编格式是相同的。 当然,如果您确实利用了.NET 3.5仅包含的程序集,则必须确保在目标计算机上实际安装了3.5。 如果不是这样,您会很快发现。

如果已启用Windows Update,则3.5应该已经在计算机上。 如果没有,那么要花上十几分钟才能到达那里。

Hans Passant answered 2020-08-12T07:13:13Z
2 votes

附带说明一下,我们有一些旧的1.0库,我们在2.0中使用了它们,但仍在3.5中使用它们,而无需重新编译。 因此那里有一些向后兼容。

quillbreaker answered 2020-08-12T07:13:34Z
2 votes

您不能让.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代码可以很高兴地在同一个应用程序池中共存)

Justin answered 2020-08-12T07:14:04Z
translate from https://stackoverflow.com:/questions/2433108/can-you-mix-net-framework-versions-in-a-solution