錯誤信息如下:
Error: Installation failed for component Microsoft Visual Studio 2010 64bit Prerequisites (x64). MSI returned error code 1603
界面如下:
網上找了很多解決方案,都未能奏效,包括重啟、刪除.net framework 4.0 Client Profile、直接運行安裝包里面的VS_Prerequisites_x64_enu.msi,都未能奏效,也有人說重裝英文版win7可以解決,但這個我沒有試過(汗)。
這里給出一個完整的解決辦法(請做好備份)
我的安裝版本是Visual Studio 2010 Ultimate Trial(.iso)
准備及確定工作:先運行ISO下WCU\64bitPrereq\x64\VS_Prerequisites_x64_enu.msi,會出現錯誤信息。如果正確安裝了,那么馬上嘗試使用ISO下setup.exe安裝,如果順利,下面的文字你不用再看了。
1、解壓或將ISO放入虛擬光驅。
2、確保安裝了.net framework 4.0(出現這個錯誤的時候.net fw 4.0應該已經裝好了)。
3、通過屬性查看c:\windows\system32\mscoree.dll 的版本,如果是2.0.50727.4927那么繼續。
4、獲取mscoree.dll的權限,有人說通過屬性的安全標簽下修改,實際操作時候會發現默認情況下即使是Administrator用戶也無法修改system32下的權限或文件。這里給出一個獲取system32最高權限的方法,見:http://www.senparc.com/SZD-272.xhtml(修改完注冊表后,文件或文件夾的鼠標右鍵就有一個【管理員取得所有權】的選項了,對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),並使用鼠標右鍵中的解壓,將其解壓至硬盤任意處。(如果你想偷懶,直接跳到10步,我已經為你准備好了7-11步所提取的文件,可以從這里下載:http://www.cnblogs.com/szw/archive/2012/02/14/mscoree-dll-download.html)
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,安裝程序會自動繼續,並忽略已經安裝的程序)。
上圖:
以上是我親自測試成功的經過,也可以參考這篇文章http://blog.bitlinkit.com/post/2011/06/13/null.aspx(碰到權限問題,建議使用上文第4點的方法)。
提取后的mscoree.dll下載:http://www.cnblogs.com/szw/archive/2012/02/14/mscoree-dll-download.html
歡迎探討更簡單的解決方案。