新聞中心
隨著時(shí)代的進(jìn)步科技的發(fā)展Visual Studio 版本也快速的提升與升級(jí),下面我就對(duì)升級(jí)前和升級(jí)后的VS2005編譯程序,做一下自己的解析。希望能夠?qū)Υ蠹矣袔椭?nbsp;它并沒有強(qiáng)制程序使用manifest, 但到了VS2005中, 這已經(jīng)改成必需的了, 而我們并沒有按照需要進(jìn)行相關(guān)的配置, 所以程序啟動(dòng)不了了。

創(chuàng)新互聯(lián)公司堅(jiān)持“要么做到,要么別承諾”的工作理念,服務(wù)領(lǐng)域包括:成都網(wǎng)站制作、成都做網(wǎng)站、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣等服務(wù),滿足客戶于互聯(lián)網(wǎng)時(shí)代的八步網(wǎng)站設(shè)計(jì)、移動(dòng)媒體設(shè)計(jì)的需求,幫助企業(yè)找到有效的互聯(lián)網(wǎng)解決方案。努力成為您成熟可靠的網(wǎng)絡(luò)建設(shè)合作伙伴!
根據(jù)目前的經(jīng)驗(yàn), VS2005編譯的程序不能啟動(dòng)大致有兩個(gè)原因, 下面簡(jiǎn)單介紹解決辦法。
1、在開發(fā)組的機(jī)器上(安裝有VS2005)有時(shí)都不能啟動(dòng)
這一般是項(xiàng)目的文件被放在了fat/fat32分區(qū)上導(dǎo)致的, 解決方法是把它們都移動(dòng)到ntfs分區(qū)上, 或者把“項(xiàng)目屬性|Manifest Tool|General|Use FAT32 Work-around”設(shè)為yes。
2、開發(fā)組運(yùn)行正常, 換到其它機(jī)器上就不行了
這一般就是系統(tǒng)dll(包括crt,mfc,atl等)沒有正確配置導(dǎo)致的。 如果程序是release版, 那么很簡(jiǎn)單, 只要把“\SDK\v2。0\BootStrapper\Packages\vcredist_x86”下的"vcredist_x86。exe"拷貝到目標(biāo)機(jī)器上運(yùn)行即可, 這是以x86平臺(tái)為例的, 如果你用的是別的cpu平臺(tái)(amd64或ia64)把x86替換成相應(yīng)的內(nèi)容就可以了。
如果是debug版, 就復(fù)雜一些了, 首先要確定你需要的dll的版本, 絕大多數(shù)(注意:不是"所有")情況下它和編譯器的版本相同, 通過(guò)VS2005的關(guān)于對(duì)話框就能看到。
確定版本后, 在開發(fā)組的機(jī)器上進(jìn)入“%windir%\winsxs"文件夾(下面將以x86平臺(tái)8.0.50727.762版本的debug crt為例進(jìn)行說(shuō)明), 拷貝以下文件到目標(biāo)機(jī)器的相同位置即可: x86_Microsoft.VC80.DebugCRT_1fc8b3b9a1e18e3b_8.0.50727.762_x-ww_5490cd9f文件夾下的所有文件Manifests文件夾下的x86_Microsoft.VC80.DebugCRT_1fc8b3b9a1e18e3b_8.0.50727.762_x-ww_5490cd9f.cat和x86_Microsoft.VC80.DebugCRT_1fc8b3b9a1e18e3b_8.0.50727.762_x-ww_5490cd9f.manifestPolicies\x86_policy.8.0.Microsoft.VC80.DebugCRT_1fc8b3b9a1e18e3b_x-ww_09e017b4文件夾下的8.0.50727.762.cat和 8.0.50727.762.policy
注意, 上面的操作只是在目標(biāo)操作系統(tǒng)為winxp,win2003及以上時(shí)才需要的, 如果是win2000及以下的系統(tǒng), 只要把第一個(gè)文件夾下的文件拷貝到system32中就行了。
附:msdn上有關(guān)vc應(yīng)用程序部署的幾片文章, 供參考
#t#Troubleshooting C/C++ Isolated Applications and Side-by-side Assemblies
Deployment Examples
以下是與這個(gè)問(wèn)題相關(guān)的一些系統(tǒng)提示信息, 為了讓碰到這些問(wèn)題的人更容易搜到關(guān)于VS2005編譯這篇文章, 我把它們列在這里.
參照的匯編沒有安裝在系統(tǒng)上
應(yīng)用程序要求的組件版本同另一個(gè)活動(dòng)的組件有沖突。
系統(tǒng)無(wú)法執(zhí)行指定的程序
ERROR_SXS_ASSEMBLY_NOT_FOUND
14003
0x800736B3
The referenced assembly is not installed on your system.
文章名稱:初步關(guān)于VS2005編譯程序的理解與學(xué)習(xí)
文章位置:http://m.5511xx.com/article/djecodg.html


咨詢
建站咨詢
