安装VS2005出现1603错误的一个解决之道

在一台曾经装过VS2005 CTP和SQL Server2005CTP版本的机器上安装VS2005 正式发行版本时,出现安装失败,安装失败的程序界面上并没有指明出现了什么错误,但提供了两份Log文件的链接(在当前用户文档的 temp目录下,如:E:\Documents and Settings\Administrator\Local Settings\Temp),一份是dd_vserror80.txt,记载了安装产生的错误信息,另外一份dd_vsinstall80.txt 则记录了安装过程的详细信息。

在dd_vserr80.txt中,看到的错误信息是:

Microsoft .NET Framework 2.0: [2] Error code 1603 for this component means "Fatal error during installation."。

1603错误是使用MSI进行安装的一种比较常见错误,表明安装过程出现了严重错误。但但这里并没有提供更多的错误原因。在另一份Log中,则可以看到产生错误的原因是:
UTILS::RunNGENAction: Unable to find ngen.exe。

竟然是找不到文件?这个错误有些让人困惑了。以往遇到安装VS2005错误比较多的还是旧版本的.net 2.0系统没有卸载干净。会不会和此有关?使用微软和一些第三方提供的工具检查,都提示本机没有找到需要卸载的.NET2.0组件。后来还是看到了微软的Aaron Stebner 的一篇blog所介绍的安装VS2005和.NET Framework2.0的问题与解决方式,受到启发,在注册表中检查发现HTLM\Software\Microsoft\.NETFramework下面还有好几个2.0的项目,把这些都删除了,重新安装,就顺利通过了。

原来,在安装.NETFramework2.0时,安装程序会在注册表中寻找相应的注册表项判断是否安装有.NET Framework程序,如果有会跳过某些步骤。这样在后面装载其它组件就会出现错误了,这正是产生找不到ngen.exe文件导致安装失败的原因。之所以出现旧版本Framework2.0程序已经卸载、而注册表中仍然有对应项目的原因应该是没有按照合理的顺序卸载有关。

最后感谢一下Aaron,他现在是微软的开发经理(Progam manager)。在他的Blog https://blogs.msdn.com/astebner/articles/492809.aspx上,有很多介绍安装VS2005的故障处理的文章。

posted on 2005-11-30 15:18  鸟儿飞过  阅读(7115)  评论(0编辑  收藏  举报

导航