【发布时间】:2010-03-12 13:50:27
【问题描述】:
我工作的代码库是 .NET 2.0。对于我们新的程序集/DLL/Web 应用程序,我很乐意利用 3.5 提供的功能。
可以在解决方案中混合 .NET 框架(每个程序集)吗?对此是否有任何与 IIS 相关的警告?
我很想听听任何正面/负面/操作方法的反馈。告诉我!
谢谢!
【问题讨论】:
标签: .net frameworks versions
我工作的代码库是 .NET 2.0。对于我们新的程序集/DLL/Web 应用程序,我很乐意利用 3.5 提供的功能。
可以在解决方案中混合 .NET 框架(每个程序集)吗?对此是否有任何与 IIS 相关的警告?
我很想听听任何正面/负面/操作方法的反馈。告诉我!
谢谢!
【问题讨论】:
标签: .net frameworks versions
是的,您可以在 Visual Studio 中执行此操作,它被称为 多目标。
Scott Guthrie 在Multi-Targeting Support in Visual Studio 上有一篇很棒的博客文章。
VS 2008 是第一个版本 包含的 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/en-us/library/bb383796(v=vs.90).aspx
【讨论】:
编辑:我错了你可以。你可以在 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/
【讨论】:
如果您可以等待新的 .NET 4.0 框架,您将能够在同一进程中并排运行每个版本的 dll。
【讨论】:
这应该不是问题。 .NET 2.0 RTM 到 .NET 3.5 SP2 都使用完全相同版本的 CLR。它们仅在包含的程序集数量上有所不同。汇编格式是一样的。当然,如果您确实利用了仅包含在 .NET 3.5 中的程序集,则必须确保目标计算机上实际安装了 3.5。如果不是,您会很快发现。
如果机器启用了 Windows 更新,它应该已经在机器上。如果没有,则需要十几分钟才能完成。
【讨论】:
附带说明一下,我们有一些旧的 1.0 库,我们在 2.0 中使用过,并且在 3.5 中仍然使用,无需重新编译。所以那里有一些向后兼容性。
【讨论】:
您不能让 .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 代码可以愉快地共存于同一个应用程序池中)
【讨论】: