安裝VC++2015運行庫時出現0x80240037錯誤


  很多時候,當我們將開發好的軟件部署到用戶的機器上時總會出現各種意想不到的錯誤,最近在一台原版Windows7系統的電腦上安裝VC++運行庫的時候,莫名的出現安裝失敗,然后錯誤代碼為:0x80240037的錯誤,找了好久才找到解決的辦法,那么我們該怎樣一步步去找到這個錯誤,並順利安裝這個呢?

  然后我們打開日志文件,找到出錯的地方,然后看看這個錯誤是怎樣引起的?

查找整個log文件,找到第一個出現0x80240037的地方,然后找到這句關鍵的代碼:

Applying execute package: Windows7_MSU_x64, action: Install, path: C:\ProgramData\Package Cache\54050A5F8AE7F0C56E553F0090146C17A1D2BF8D\packages\Patch\x64\Windows6.1-KB2999226-x64.msu, arguments: '"C:\Windows\SysNative\wusa.exe" "C:\ProgramData\Package Cache\54050A5F8AE7F0C56E553F0090146C17A1D2BF8D\packages\Patch\x64\Windows6.1-KB2999226-x64.msu" /quiet /norestart'

  也就是安裝Windows6.1-KB2999226-x64.msu的時候出錯了,然后彈出0x80240037這個錯誤,關於這個文件是什么類型的暫時先不說明,直接說明怎樣才能解決這個問題。

  1 在Windows下面全盤搜索Windows6.1-KB2999226-x64.msu這個文件,果然在ProgramData文件夾下面找到了這個文件。

  2 搜索到的應該是Windows6.1-KB2999226-x64.msu這個文件,我們將這個文件的后綴名改為.cab文件。

  3 然后右鍵解壓到當前文件夾下面,這是會多出幾個文件,其中也有一個Windows6.1-KB2999226-x64.cab文件。

  4 以管理員身份運行cmd ,輸入下面的命令 dism /online /add-package /packagepath:"剛才解壓的文件夾下面Windows6.1-KB2999226-x64.cab的位置"

  5 點擊回車,出現下面的界面,等待執行完畢。

  6  部署完畢如果提示需要進行重啟,那么重啟計算機,然后再重新安裝VC++2015運行庫。

  7 重新安裝,然后順利安裝完成。

  那么回到這個問題中,我們需要了解幾個重要的問題:

       1 為什么要安裝VC++運行庫,而且這個運行庫版本眾多,有時自己都搞不清楚到底安裝哪個版本。

       答:運行庫是一個經過封裝的程序模塊,對外提供接口,只要知道接口參數就可以自由使用。如果不使用運行庫,每個程序中都會包含很多重復的代碼,而使用運行庫,可以大大縮小編譯后的程序的大小。但另一方面,由於使用了運行庫,所以在分發程序時就必須帶有這些庫,比較麻煩。如果在操作系統中找不到相應的運行庫程序就無法運行。為了解決這個矛盾,Windows總是會帶上它自己開發的軟件的最新的運行庫。像Windows 2000以后的版本都包括Visual Basic 5.0/6.0的庫。這個是百科中的解釋,總之如果C++的代碼不是選擇靜態編譯的話就需要對應的VC++運行庫的支持。

      2 msu文件是什么類型的文件?為什么需要安裝這個?

     答:.msu文件是微軟的獨立安裝程序,首次安裝時需要聯網下載特定的.cab更新包,並保存到本地的臨時文件夾中,這個文件的名字不需要我們特別關注。一般我們使用wusa.exe來安裝.msu程序。由於這個需要進行聯網更新操作,所以可能在沒有網絡的情況下會出現錯誤,這個是我的猜測。命令格式如下:wusa.exe "X:\路徑\windows10.0-kb3172988-x64_c3f911bf701a57a0423828fec6707b8a0b181453.msu" /quiet /norestart其中,wusa.exe是安裝命令,引號中的內容是更新包路徑(需根據自己實際情況改寫),后面/quiet表示靜默安裝,/norestart表示無需重啟(這些參數可酌情使用)

     3 dism命令的作用是什么?

 答:部署映像服務和管理 (DISM.exe) 是一個用於更新脫機 Windows® 映像的命令行工具。使用 DISM 脫機安裝或刪除程序包有以下兩種方式。你可以將無人參與的應答文件應用於脫機映像,或可以直接從命令提示符添加或刪除程序包。這個是從MSDN上面查到的相關資料,在使用的時候需要按照一定的格式來進行更新,我們使用這個命令是聯網去更新一些程序包,然后就能夠正確的安裝了,至於具體的原因就不太了解了,歡迎對此了解的多發表一下意見,以解決自己的困惑。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM