VS 2005部署應用程序提示“應用程序無法正常啟動( 0x0150002)” 解決方案


      遇到這個問題,一定是缺少了CRT、MFC、ATL的DLL,不同版本的VS是不一樣的。系統自帶這些庫的Release版,如果沒有自帶,打補丁就有了;系統不自帶這些庫的Debug版,所以Debug版的程序在一般電腦是不能正常運行的(不過裝了對應版本的VS就可以正常運行了)。這篇博文對VS2008 部署應用程序 “應用程序配置不正確,程序無法啟動”的問題有比較詳細的解決方案,有興趣的童鞋可以看一看。

      如果是部署環境導致了這個錯誤,那么上一段提到的那篇博文足矣解決問題,如果是程序本身的錯誤,那么需要進一步進行排查。最近我的一個VS2005開發的項目,發布Rlease版本,部署到其他電腦的時候,有些電腦提示“應用程序無法正常啟動( 0x0150002)” 如圖1,有些正常。經過不斷測試,發現該錯誤與XP、Win7和Win8系統無關,與是否安裝VS2005環境有關。很明顯,Release版的程序卻需要Debug版的庫,基本可以斷定是我的程序出了問題。雖然通過安裝VS2005或添加VS2005 Debug版的CRT、MFC、ATL庫可以讓程序運行,但這只是掩蓋了問題,並沒有解決問題。

圖1 應用程序正常初始化 0x0150002失敗

      遇到這種莫名其妙的問題,直接Google報錯提示是最佳選擇,但是在Google到的方法都不起作用的時候,需要通過日志去分析到底哪里出問題,方法如下:

  1、右鍵“計算機”,打開“管理”,選擇“系統工具”—“事件查看器”—“Windows日志”—“應用程序”,如圖2所示。右邊可以看到錯誤信息,第一條就是我想要找的錯誤信息;

圖2 查看應用程序出錯日志

  2、雙擊該錯誤信息,彈出圖3日志信息。該信息比“應用程序無法正常啟動( 0x0150002)” 有用多了,疑點有兩個,一個是少了CRT庫,另一個是ACE.dll有問題。毫無疑問,既然是發布Release版本,還要Debug版本的庫,是這個ACE.dll出了問題;

圖3 應用程序出錯日志

  回到VS2005查看程序,果然,之前太大意了,ACE.dll竟然是Debug版,難怪出問題了。重新編譯Release的ACE.dll,替換原先的ACE.dll,問題解決。


免責聲明!

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



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