1. 程式人生 > >關於WIN7系統安裝VS2010軟體,提示不斷重啟電腦的可能的解決方案

關於WIN7系統安裝VS2010軟體,提示不斷重啟電腦的可能的解決方案

    錯誤資訊如下:

    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,安裝程式會自動繼續,並忽略已經安裝的程式)。

上圖:

在這裡非常的感謝這個大俠Jeffrey Su,本文也是摘自他寫的文章。整個解決方案下來,其實出現以上的安裝異常,就是我們的系統system目錄檔案裡面的這個檔案mscoree.dll丟失,或者被損壞造成的。這樣子,每次安裝VS2010軟體的時候,安裝軟體都會檢測到mscoree.dll檔案出現錯誤,因此都會提示系統需要重新啟動電腦。這樣就會出現不斷地提示出現重新啟動電腦的異常。從整個過程中,解決以上問題的突破口,關鍵在與我們要VS2010安裝異常,彈出的異常資訊。我在日誌錯誤的資訊裡面找到了“MSI returned error code 1603”,這個1603的程式碼,然後才找到以上的大俠的寫的那篇文章。