解決”應用程序配置不正確,程序無法啓動”問題

問題背景

基於mfc開發的程序在發佈或是在沒有安裝vs環境的機器上運行時,會報“應用程序配置不正確,程序無法啓動”類似這樣的錯誤,根本原因就是沒有對應的依賴庫文件或是版本不對。

問題分析、解析

解決的方法是先找出依賴的哪些文件,在編譯程序的目錄下查找 *exe.intermediate.manifest文件,文件的內容可能長這樣

<?xml version=’1.0′ encoding=’UTF-8′ standalone=’yes’?>
< assembly xmlns=’urn:schemas-microsoft-com:asm.v1′ manifestVersion=’1.0’>
 <dependency>
    <dependentAssembly>
      <assemblyIdentity type=’win32′ name=’Microsoft.VC80.CRT’ version=’8.0.50727.762′ processorArchitecture=’x86′ publicKeyToken=’1fc8b3b9a1e18e3b’ />
    </dependentAssembly>
 </dependency>
 <dependency>
    <dependentAssembly>
      <assemblyIdentity type=’win32′ name=’Microsoft.VC80.MFC’ version=’8.0.50727.762′ processorArchitecture=’x86′ publicKeyToken=’1fc8b3b9a1e18e3b’ />
    </dependentAssembly>
 </dependency>
 <dependency>
    <dependentAssembly>
      <assemblyIdentity type=’win32′ name=’Microsoft.VC80.DebugCRT’ version=’8.0.50727.762′ processorArchitecture=’x86′ publicKeyToken=’1fc8b3b9a1e18e3b’ />
    </dependentAssembly>
 </dependency>
< /assembly>

需要注意這個文件中的3個關鍵詞:Microsoft.VC80.CRT,Microsoft.VC80.MFC和Microsoft.VC80.DebugCRT。尋找到….”Program Files”Microsoft Visual Studio 8″VC”redist文件夾下面,找到這些名稱的子文件夾,拷貝它們下面所有的文件到希望發佈的EXE文件下面,一起打包。這些文件也就是mfc80.dll,msvcr80.dll,msvcp80.dll和Microsoft.VC80.CRT.manifest等。

當把相關的文件拷貝完整,一塊發佈後,一切運行正常。

查看原文

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章