◎蕭沖整理:

 

自從ms把 dll hell 改成 sxs 的方式後,又變成另一種hell @@。

常常搞不清楚安裝程式少了哪一個版本的run time,再此先教大家確認的方式 : 用resource editor (vs2005可以直接打開exe檔)打開exe檔,就會看到RT_Manifest的資源,查一下裡面<assemblyIdentity type="win32" name="Microsoft.VC80.DebugCRT" version="8.0.50727.4053" …  之類的就可以確認。

一但確認後,該如何解決呢?

1/ 使用 目錄夾的方式: 若你是程式開發人員,請在
%PROGDIR%\Microsoft Visual Studio 8\SDK\v2.0\Bootstrapper\Packages\

找出 vcredist_x86\vcredist_x86.exe  或 vcredist_x64\vcredist_x64.exe 然後給客戶安裝。

2/ 使用xcopy的方式來佈署:
到%PROGDIR%\Microsoft Visual Studio 8\VC\Redist\
找到 Debug_NonRedist 裡的 Microsoft.VC80.DebugCRT 與 Microsoft.VC80.DebugMFC 目錄,然後整個copy至你的exe 檔的位置上,連目錄一起。
或找到 x86 裡的 Microsoft.VC80.CRT and Microsoft.VC80.MFC ,一樣copy至你的exe 檔的位置上,連目錄一起。

 

最近剛好在測寫64bit的程式,發現該distribution的版本很特別…  所以也註記一下:

目前最新的應該是
http://www.microsoft.com/downloads/en/details.aspx?familyid=766a6af7-ec73-40ff-b072-9112bab119c2&displaylang=en

一般找到的下載點都不是最新的,所以程式變成無法跑。當然,若程式人員用上述的第一個方法就一定不會有這個問題。但若你是user,你就只能自己下載,於是就要了解最新匹配的版本。上面的版本是8.0.50727.4053,它是一個sp1後的hotfix !

創作者介紹
創作者 aftcast 的頭像
aftcast

蕭沖的書房

aftcast 發表在 痞客邦 留言(0) 人氣()