我上一次安裝DirectX SDK已經一年多以前了。更新到Win7 64系統後,一直沒有再安裝。今天要寫一個3D程序,必須得安裝。安裝過程也算順利,花了15分鐘左右,進度條走到底了。滿以爲就成功了,但下一個頁面卻跳出錯誤提示來:
這種錯誤提示非常可惡,只有一個完成按鈕,連返回的機會都不給。直接告訴你,功夫白花掉了。界面上的提示毫無價值,竟然讓你關閉所有程序,然後再試一遍。這就好像一些電腦維修電的人,誰把電腦送過去,他用得最純熟的一招就是“把系統重裝一遍”!
但通過關鍵字s1023搜索了一下,竟然很快就在stackoverflow及微軟support網站上找到了解決辦法:原文URL、2。解決此問題步驟如下:
- 打開temp目錄(%temp%)後,根據日期找到log文件。Log文件很容易找,通過日期排序後,找到文件Microsoft Visual C++ 2010 x86 Redistributable Setup_data_xxx.htm
- 打開log文件後,確認有類似下面的錯誤內容:
Installation Blockers: 1.A newer version of Microsoft Visual C++ 2010 Redistributable has been detected on the machine. Final Result: Installation failed with error code: (0x000013EC),"A StopBlock was hit or a System Requirement was not met." (Elapsedtime: 0 00:00:01).
- 這個錯誤稍微解釋一下,它是講:SDK安裝包在爲系統安裝VS2010再發行組件(Redistributable package)的時候,發現系統中已經安裝了一個版本更新的VS2010再發行組件,導致SDK的再發行組件無法安裝。SDK安裝失敗。(真白癡!)
- 如果確認是同樣的問題的話,解決的辦法很簡單:控制面板中打開“程序和特性”,找到名爲Microsoft Visual C++ 2010 X64 Redistributable-xxx和Microsoft Visual C++ 2010 X86 Redistributable-xxx這兩個程序並卸載它們(如果是32位系統,就只有x86一個)。我係統中這兩個程序的版本是10.0.40219。
- 重新安裝DirectX SDK。SDK最後會爲系統安裝兩個版本較舊的VS2010再發行組件(10.0.30319)。最後安裝順利完成。
在使用Windows的過程中,我多次遇到過SDK、KB補丁安裝不成功的情況。究其原因,大抵是一些很白癡的問題導致的。本例中,我機器上原有的VS2010再發行組件版本是10.0.40219,DirectX SDK試圖安裝10.0.30319版本,無法更新而導致整個安裝過程失敗 。微軟在這方面的用戶體驗上,做得實在差勁。