本文是为了备忘在Win7 64位系统中安装Visual Studio 2010旗舰版出现错误并多次得不到解决,最终寻得解决方法。
电脑装的是Win7 64位旗舰版系统,安装Visual Studio 2010旗舰版在安装Microsoft Visual Studio 2010 64bitPrerequisites (x64)这一步时总是出现错误(Error: Installation failed for component Microsoft Visual Studio 2010 64bit Prerequisites (x64). MSI returned error code 1603,万恶!!),网上搜了很多,有不少说跟系统相关的,比如系统非正版啊等等,还有说卸载已安装成功的与VS相关的软件的,比如.NET Framework 4.0什么的,然后重装;关闭杀软,断网再装,等等等等,不过自己试验过之后该怎么错还是怎么错。当然那种与Office冲突的情况不知道有没有,因为自己装的是WPS,所以不排除这种情况,但没有给予试验。
下面这个图是出现错误的界面(网上拷的,自己出错以及后来安装成功的是中文版,不过也装过英文版,出错界面与此相同)
打开错误日志(View Error Log)第一行就有Error: Installation failed for component Microsoft Visual Studio 2010 64bit Prerequisites (x64). MSI returned error code 1603信息,这里说明一下网上寻得的解决方法并加以总结,并十分感谢这两位为大家成功安装VS2010作出贡献的博主(后附博客链接)!
1、将ISO文件载入虚拟光驱,出现这个错误说明.NET Framework 4.0已成功安装。先运行ISO下WCU\64bitPrereq\x64\VS_Prerequisites_x64_enu.msi,会出现错误信息。如果正确安装了,那么马上尝试使用ISO下setup.exe安装,如果顺利,下面的文字你不用再看了。
2、查看错误信息:找不到C:\Windows\Microsoft.NET\Framework64\v2.0.50727\CONFIG下的machine.config配置文件(注意该路径中红色Framework64也可能是Framework,视提示信息而定!)。打开这个路径,里面有个machine.config.default文件,将该文件复制并命名为machine.config(原文见http://www.cnblogs.com/angelbean/archive/2012/01/30/2331751.html),然后重新运行WCU\64bitPrereq\x64\VS_Prerequisites_x64_enu.msi,如果不提示错误信息,运行完毕后Visual Studio 2010 64bit Prerequisites (x64)即已安装成功,然后运行VS 2010的安装程序(推荐setup.exe),安装至成功!后续步骤同样略过!
(由此以下原文见http://www.cnblogs.com/szw/archive/2012/02/14/vs2010-setup-failed-for-component-Microsoft-Visual-Studio-2010-64bit-Prerequisites-x64.html,由于自己在上步已安装成功,下面的内容仅作总结和备忘。)
3、通过“右键->属性->详细信息”查看c:\windows\system32\mscoree.dll 的版本,如果是2.0.50727.4927那么继续(说实话不知道如果不是这个版本怎么办……)。
4、获取mscoree.dll的权限。有人说通过属性的安全标签下修改,实际操作时候会发现默认情况下即使是Administrator用户也无法修改system32下的权限或文件。这里给出一个获取system32最高权限的方法:将下面粗体的内容复制到txt里面保存成reg格式并双击运行即可(见http://www.senparc.com/SZD-272.xhtml)。
Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\*\shell\runas]
@="管理员取得所有权"
"NoWorkingDirectory"=""
[HKEY_CLASSES_ROOT\*\shell\runas\command]
@="cmd.exe /c takeown /f \"%1\" && icacls \"%1\" /grant administrators:F"
"IsolatedCommand"="cmd.exe /c takeown /f \"%1\" && icacls \"%1\" /grant administrators:F"
[HKEY_CLASSES_ROOT\exefile\shell\runas2]
@="管理员取得所有权"
"NoWorkingDirectory"=""
[HKEY_CLASSES_ROOT\exefile\shell\runas2\command]
@="cmd.exe /c takeown /f \"%1\" && icacls \"%1\" /grant administrators:F"
"IsolatedCommand"="cmd.exe /c takeown /f \"%1\" && icacls \"%1\" /grant administrators:F"
[HKEY_CLASSES_ROOT\Directory\shell\runas]
@="管理员取得所有权"
"NoWorkingDirectory"=""
[HKEY_CLASSES_ROOT\Directory\shell\runas\command]
@="cmd.exe /c takeown /f \"%1\" /r /d y && icacls \"%1\" /grant administrators:F /t"
"IsolatedCommand"="cmd.exe /c takeown /f \"%1\" /r /d y && icacls \"%1\" /grant administrators:F /t"
修改完注册表后,文件或文件夹的鼠标右键就有一个【管理员取得所有权】的选项了,对system32或单个mscoree.dll使用即可。
5、重命名mscoree.dll,最好命名成类似mscoree.dll.bak的文件,便于备份和还原。
6、如果你是x64(64位)的系统,那么在c:\windows\syswow64\mscoree.dll文件重复第4、5步。
7、在ISO安装包下找到dotNetFx40_Full_x86_x64.exe(比如H:\WCU\dotNetFramework),并使用鼠标右键中的解压,将其解压至硬盘任意处(最好解压到某一个文件夹下,因为解压的文件比较多)。
8、找到解压文件中netfx_Core.mzz文件,重命名成netfx_Core.mzz.zip,并打开或解压到硬盘任意处。
9、找到netfx_Core.mzz.zip中的_003_mscoree_dll_x86(针对32位及64位)或_003_mscoree_dll_amd64(针对64位系统)两个文件,复制(此处原文为“解压”,可能手误)至硬盘任意处(如果是64位两个文件都需要,当然这个问题基本只出现在64位上)。
10、将_003_mscoree_dll_x86(针对32位系统)或_003_mscoree_dll_amd64(针对64位系统)重命名成mscoree.dll并复制到c:\windows\system32目录下。
11、如果是64位,需要再次将_003_mscoree_dll_x86(注意:确实是x86)重命名成mscoree.dll,并复制到c:\windows\syswow64目录下。
12、无需重启,直接运行ISO下的setup.exe继续安装即可(如果不放心也可以先尝试安装ISO下WCU\64bitPrereq\x64\VS_Prerequisites_x64_enu.msi文件,确保这一步通过,不过个人推荐直接运行setup.exe,安装程序会自动继续,并忽略已经安装的程序)。
上文3—12步没有亲自试验过,但原作者总结的很详细,可操作性很强,十分感谢!
本文由VS软件圈(vssoft.net)发布,不代表VS软件圈立场,转载联系作者并注明出处:https://vssoft.net/vsazwt/VS2010anzhuangwenti/2020/0724/2169.html