• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            永遠也不完美的程序

            不斷學習,不斷實踐,不斷的重構……

            常用鏈接

            統(tǒng)計

            積分與排名

            好友鏈接

            最新評論

            應用程序配置不正確,程序無法啟動的問題小結(轉)

            轉自:http://blog.csdn.net/waterathena/archive/2009/04/20/4094771.aspx

            重裝系統(tǒng)之后,開發(fā)環(huán)境進行重新配置了。因為之前那個環(huán)境用了大概有半年多了,所以只是基本的配置作了記錄,其他細節(jié)的東西并沒有以文字方式記錄下來。這次運行起來有了一些未遇到過的問題。

            問題1:重裝系統(tǒng)之前就遇到過,解決了。主要原因缺少DLL

            問題描述:項目組要提交0.9版到QT部門進行測試,打包發(fā)布文件之后,在測試部測試電腦上安裝之后,發(fā)現(xiàn)雙擊.EXE不能運行。彈出信息框:由于應用程序配置不正確,應用程序未能啟動。重新安裝應用程序可能會糾正這個問題。

            解決方法:當時網(wǎng)上一查發(fā)現(xiàn)需要拷貝VS2005安裝包目錄下的一些DLL文件。我的安裝目錄是:C:\Program Files\Microsoft Visual Studio 8\VC\redist\x86。我把這個目錄下的所有相關文件都拷貝到項目生成文件目錄下。

            參考原文:http://www.cnblogs.com/wuhanhoutao/archive/2008/01/09/1031928.html

            問題2:在重新安裝系統(tǒng),重新安裝開發(fā)環(huán)境之后,工作了幾日后,發(fā)布新的版本給QT測試部門測試。發(fā)現(xiàn)又出現(xiàn)這樣的問題。主要原因MANIFEST不正確

            問題描述:安裝完成之后,點擊.exe不能運行。彈出信息框:由于應用程序配置不正確,應用程序未能啟動。重新安裝應用程序可能會糾正這個問題。

            其中有一次彈出的信息框為英文操作系統(tǒng)下面的信息:The application has failed to start because its side-by side configuration is incorrect.

            正是這個信息里面的“side-by-side configuration”讓我去了解WINSXS。

            參考文章:http://microsoft.cnfan.net/vista/3434.html (vista WinSxS 混亂導致的應用程序不能啟動 )

            參考文章:http://blog.csdn.net/arau_sh/archive/2008/12/17/3538252.aspx (提供四種解決方法)

            參考文章:http://hi.baidu.com/freedomknightduzhi/blog/item/60a5012e512bba554fc226e9.html

            參考文章:http://www.cnblogs.com/holly/archive/2009/02/20/1395150.html (可以嘗試)

            參考文章:http://blog.csdn.net/newweapon/archive/2008/06/17/2556857.aspx

            官方參考資料:http://msdn.microsoft.com/en-us/library/dd408052(VS.85).aspx

            參考文章:http://blogs.msdn.com/suzcook/archive/2004/05/14/132022.aspx (APP.CONFIG example)

            我的解決方法:

            1.我試驗了在測試目標機上安裝VC++ 2005 Redistribute package,.exe可以正確運行。但是我覺得這個并不能代表真正原因,因為之前我也沒有安裝任何發(fā)布包,但是.exe可以正確運行。

            2.參考文章“vista WinSxS 混亂導致的應用程序不能啟動 ”可以知道,.exe在運行的時候執(zhí)行的進程去系統(tǒng)默認路徑尋找需要的DLL文件,而沒有使用拷貝到本目錄下的DLL文件。所以如果系統(tǒng)沒有安裝發(fā)布套件,那么執(zhí)行的時候就出現(xiàn)了“應用程序配置不正確……”的錯誤。

            該文章中提供的解決方案把MANIFEST文件不要內(nèi)嵌到.EXE文件中,調(diào)整編譯設置后我重新編譯了程序,然后拷貝程序到目標測試機測試,發(fā)現(xiàn)還是不行。這個時候我去查看了編譯生成在外部的MANIFEST文件(用文本文件可以打開MANIFEST)文件,發(fā)現(xiàn)了問題:
             

            仔細一看就發(fā)現(xiàn)同樣的DLL寫了兩次,只是版本不同。而我拷貝到執(zhí)行文件同目錄下的版本為8.0.50727.762。把最后那個dependency分支去掉后,在把執(zhí)行文檔所在的整個目錄拷貝到QT目標測試機就運行起來了。

            題外話:

            1.在上面的參考文章中提到使用靜態(tài)鏈接MFC庫的形式,就不會出現(xiàn)這樣的問題。但是靜態(tài)鏈接庫不好,另外也會造成編譯生成的.EXE龐大。

            如果實在沒有辦法的情況下,也只能靜態(tài)編譯了。設置順序為:Project->Properties(ALT+F7)->Property Page->General->Project Defaults->use of MFC設置:USE MFC IN A STATIC LIBRARY

            然后BUILD。

            2.在目標測試機上安裝相應的發(fā)布套件。VC_REDIST_X86.EXE

            需要把官方發(fā)布的安裝套件和你的程序捆綁安裝,很麻煩。需要判斷操作系統(tǒng)(32or64位),需要判斷操作系統(tǒng)當前使用語言,然后安裝對應的版本。這是一定能解決不能運行的問題的辦法。

            Microsoft Visual C++ 2005 Redistributable Package (x64) 下載地址:

            http://www.microsoft.com/downloads/details.aspx?displaylang=zh-cn&FamilyID=90548130-4468-4bbc-9673-d6acabd5d13b

            Microsoft Visual C++ 2005 Redistributable Package (x86)

            http://www.microsoft.com/downloads/details.aspx?familyid=32BC1BEE-A3F9-4C13-9C99-220B62A191EE&displaylang=zh-cn

            3. 如何查看本機的.NET Framework版本

            參考文章:http://blog.csdn.net/FantasiaX/archive/2008/05/17/2453907.aspx

            我喜歡的方法:從注冊表里查

            注冊表其實就是一個大型的“鍵-值對列表”(Key-Value Pair List)。注冊表中的鍵是以樹狀層級結構記錄的,所以圖標看起來像是一個“文件夾”;一個鍵下,可以有“值”,而可以有再下一級的鍵。值是有數(shù)據(jù)類型的,比如字符串型、數(shù)字型;每個值都有自己的“Value Name”和“Value Data”。所以:

            如果:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP\v2.0.50727鍵下Value Name為Install的值的Value Data等于1,則說明.NET Framework 2.0.50727已經(jīng)安裝。同理,檢查HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP\v3.0鍵和HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP\v3.5鍵下的Install值的Value Data就知道是否安裝了這兩個版本。我估計,如果沒有安裝過3.0和3.5的話,這兩個鍵是不會存在的,如果安裝后又卸載了,鍵可能會在,Install的Value Data可能會是0。


            本文來自CSDN博客,轉載請標明出處:http://blog.csdn.net/waterathena/archive/2009/04/20/4094771.aspx

            posted on 2010-01-10 23:36 狂爛球 閱讀(5452) 評論(0)  編輯 收藏 引用 所屬分類: 圖形編程

            久久er99热精品一区二区| 一极黄色视频久久网站| 国产成年无码久久久久毛片| 国产精品禁18久久久夂久| 久久精品亚洲精品国产色婷 | 一本色综合网久久| 国产精品久久国产精麻豆99网站| 国产精品VIDEOSSEX久久发布| 色综合久久天天综线观看| 奇米影视7777久久精品| 久久久精品国产亚洲成人满18免费网站| 国产偷久久久精品专区| 国内精品久久久久久久涩爱| 77777亚洲午夜久久多喷| 亚洲精品乱码久久久久久不卡| 国产欧美久久一区二区| 中文国产成人精品久久亚洲精品AⅤ无码精品 | 久久亚洲精品国产精品婷婷| 国产午夜精品理论片久久影视| 亚洲v国产v天堂a无码久久| 久久夜色tv网站| 国产精品久久久久jk制服| 亚洲综合日韩久久成人AV| 伊人 久久 精品| 久久国产亚洲精品| 四虎影视久久久免费| 久久综合给合综合久久| 久久国产精品偷99| 久久本道久久综合伊人| 国产成人香蕉久久久久| 久久久综合九色合综国产| 国产精品久久永久免费| 久久精品国产亚洲AV电影| 久久综合狠狠综合久久| 久久精品无码专区免费东京热| 色8久久人人97超碰香蕉987| 亚洲精品无码久久久久| 无码日韩人妻精品久久蜜桃| 无码人妻久久一区二区三区免费丨| 免费无码国产欧美久久18| 日本WV一本一道久久香蕉|