我工作的代码库是.NET 2.0。对于我们的新程序集/ DLL / web应用程序,我很乐意利用3.5提供的功能。
可以在解决方案中混合使用.NET框架(每个程序集)吗?是否有与此相关的IIS相关警告?
我很想听到任何积极/消极/如何反馈。让我知道!
谢谢!
答案 0 :(得分:19)
是的,您可以在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的新版本 安装在客户端上 生产服务器运行它们 应用
干杯
答案 1 :(得分:6)
您可以根据以下内容一起使用2.0,3.0和3.5: http://msdn.microsoft.com/en-us/library/bb383796(v=vs.90).aspx
答案 2 :(得分: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/
答案 3 :(得分:3)
如果您可以等待新的.NET 4.0框架,您将能够在同一个过程中并排运行每个版本的dll。
答案 4 :(得分:2)
这应该不是问题。 .NET 2.0 RTM到.NET 3.5 SP2都使用完全相同的CLR版本。它们仅因包含的组件数量而异。装配格式是相同的。当然,如果您确实利用了仅包含在.NET 3.5中的程序集,则必须确保目标计算机上实际安装了3.5。如果不是,你会很快发现。
如果已启用Windows Update,则3.5应该已在计算机上。如果没有,它需要十几分钟才能到达那里。
答案 5 :(得分:2)
作为旁注,我们在2.0中使用了一些旧的1.0库,仍然在3.5中使用,没有重新编译。所以那里有一些向后兼容性。
答案 6 :(得分:2)
你不能让.Net 1.1 assmeblies在与.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代码可以愉快地共存于同一个应用程序池中)