你需要同时安装.NET 3.5和4.0,还是只需要安装.NET 4?

31

如何同时运行3.5和4.0网络应用程序?

5个回答

17

我记得曾经从微软读到一篇文章,其中提到:

".NET 4.0 增加了与之前版本的 Framework 的进程内并行兼容性。该功能允许应用程序进程同时使用 .NET 公共语言运行时 (CLR) 4 运行其部分代码以及其他部分使用旧版本的 CLR。"

因此,回答您的问题,只有在您的应用程序使用两者功能或者您拥有使用 .NET 3.5 和 .NET 4.0 的不同 Web 应用程序时,才需要同时使用两者。

.NET 4.0 单独使用应该没问题,只要您可以将 3.5 应用程序升级到 4.0。这个页面 提供了一些有用的信息。

这里 是我读到它的地方。


2
ASP.NET不在同一个进程中同时使用3.5和4.0版本,4.0几乎包含了所有3.5的特性(除了一些兼容性问题,如J#)。 - Pent Ploompuu
@Pent,说得好,我觉得我实际上在回答一个不同的问题。 - Ash
似乎意味着您需要安装3.5和4.0版本。 - Keith Nicholas
我会接受这个答案,因为它基本上是正确的,只是带了一些无关紧要的东西 :) - Keith Nicholas
5
从 http://msdn.microsoft.com/en-us/library/bb822049.aspx 上的内容:「为版本 2.0、3.0 和 3.5 构建的应用程序都可以在版本 3.5 上运行,但它们将无法在版本 4 或更高版本上工作。」 - Corey Alix

4

4
我发现即使我已经安装了4,我仍需要3.5版本。如果没有3.5版本,我会遇到“GfxUI已停止工作”的错误。尽管安装了最新的G41芯片组英特尔驱动程序,但错误仍然存在。后来我发现一篇文章说需要.net3.5版本,当我安装了它后问题就解决了。所以...正如之前所说,这完全取决于您安装的应用程序。如果它们需要3.5版本,则需要同时安装。

1

只需要4.0就足够了,但可能会出现一些问题 - 例如J#在.net 4.0上无法工作


4
我希望你能够给出比“应该”更加明确的答复。这也是我提出这个问题的原因...我在想,“它应该能够运行...”,但并不是百分之百确定。 - Keith Nicholas
在.NET 4.0中,似乎也有关于反射安全性的新限制。在依赖.NET 4.0运行您的.NET 3.5应用程序之前,建议您在.NET 4.0和.NET 3.5系统中都进行测试。 - jpierson

0

再加一点...

所有在4.0 [4.0 CLR] 之前的框架 (包括3.5.1) 都是基于2.0 CLR 的。微软尽最大努力使4.5 [4.5 CLR] 成为一个“无缝”的升级(或服务[如果不是功能]包)。

和上面一位聪明的评论者所说的一样,如果你有无法转换的3.5.1的依赖项,选择就会更加有限。有人知道Entity和LINQ堆栈是否已经完全从3.5.1框架过渡了吗?我假设它已经完全过渡了,但也不确定。

另外需要注意的是,简单地在一些服务器上安装4.5...可能会在MOSS2K7、SP2010服务上出问题...;-o


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接