43

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

可以在解决方案中混合 .NET 框架(每个程序集)吗?是否有任何与 IIS 相关的警告?

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

谢谢!

4

7 回答 7

18

是的,您可以在 Visual Studio 中执行此操作,它称为Multi-Targeting

Scott Guthrie 有一篇关于Visual Studio 中的多目标支持的精彩博客文章。

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

干杯

于 2010-03-12T13:57:43.840 回答
6

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

于 2012-05-21T15:30:51.210 回答
4

编辑:我错了,你可以。 您可以在 2.0 中参考 3.+ 程序集,因为 CLR 是相同的。从 2.0/3.+ 升级到 4.0 时不会出现这种情况,因为有新版本的 CLR。

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

于 2010-03-12T13:51:10.673 回答
3

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

于 2010-03-12T13:58:54.773 回答
2

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

如果机器启用了 Windows 更新,3.5 应该已经在机器上。如果没有,它需要十几分钟才能到达那里。

于 2010-03-12T14:02:50.367 回答
2

附带说明一下,我们有一些旧的 1.0 库,我们在 2.0 中使用过,并且在 3.5 中仍然使用,无需重新编译。所以那里有一些向后兼容性。

于 2010-03-12T15:02:05.827 回答
2

您不能让 .Net 1.1 程序集在与 .Net 2.0+ 程序集相同的进程中运行 - 尝试这样做会导致失败。

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

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

于 2010-03-12T15:47:54.647 回答