.NET 4.0安装程序使我的机器处于半破坏状态

时间:2010-08-25 00:42:04

标签: .net installer .net-4.0

我遇到了一个非常有趣的.NET 4.0安装程序问题。我有一个针对.NET 2.0的小程序。我正在运行Win7 x64,它预装了.NET 3.5。安装.NET 4.0后,程序停止工作。它试图使用在.NET 4.0中弃用的函数,但根据various articles我已经读过,.NET 4.0的进程内并行技术应该允许我的程序继续在.NET 2.0 CLR上运行。

即使安装程序成功完成,看起来.NET 4 installer使我的计算机处于稍微破碎的状态。安装.NET 4.0后,安装在c:\ windows \ system32和c:\ windows \ syswow64中的mscoree.dll(主.NET运行时dll)的版本是2.x版本。我尝试从另一台运行完全相同的安装程序的计算机上复制正确安装的4.0 mscoree.dlls,然后我的程序按原样运行。

我无法确定为什么会发生这种情况,以及为什么我只能在一台机器上重现它。幸运的是,我可以非常可靠地重现这个问题。卸载.NET 4也解决了这个问题,但我希望能够成功运行我的代码而不建议用户不安装.NET 4.0。

有关为何会发生这种情况的任何想法?谢谢!

1 个答案:

答案 0 :(得分:0)

我与微软的一些人保持联系,并提供了一些非常有趣的信息。

我的操作系统是:v6.1.7600.16384 Win7的RTM版本是:6.1.7600.16385

我正在运行Win7的RTM前版本。在Windows 7上,mscoree.dll由.NET 4安装程序链安装的OS Update更新。根据我一直在谈论的人们说:“操作系统更新实际上明确针对Windows 7的RTM版本,并将内置到所有未来的SP中。它会向我们的安装程序返回一个”不适用“的返回值,意味着更新已经应用或内置到操作系统中。这就是.NET安装程序成功的原因。“

因此,升级到RTM版本似乎可以解决这个问题。