在接近final-build的時候,忽然發現當前版本從上一個版本upgrade的時候,須要寫到GAC (Global Assembly Cache)的assambly會寫失敗掉。可是隻會在特定的Microsoft OS (個人重現環境是Win7)下會有這樣的問題。windows
失敗的具體狀況爲:ui
upgrade在卸載前版本的時候,GAC是清理乾淨了;orm
安裝新版本的過程時,GAC會寫不進去;進程
這種狀況下,打開新版本,在task manager能夠看到兩個叫MSIEXEC.exe(windows installer進程)的進程被建立了;ip
糾其緣由,是upgrade的時候,一些程序須要的global assembly不能正常的寫到GAC。get
這時候打開程序時,運行到引用這些global assembly的程序邏輯時,會發現這些assembly的缺失,因此新建了windows installer進程試圖從installer中從新拿到global assembly去寫入GAC。io
可是程序邏輯沒有中止,會發現引用失敗,致使程序失敗。只有windows installer把全部的global assembly寫完了,再從新打開,程序才能正常啓動。form
這個是windows的已知bug,而且Microsoft已經給出了補丁。只要在出現問題的環境安裝補丁就能夠解決這個問題。補丁下載地址以下下載
Package:引用
-----------------------------------------------------------
-----------------------------------------------------------
KB Article Number(s): 981929
Language: All (Global)
Platform: x64
Location: (http://hotfixv4.microsoft.com/Windows%20Vista/sp3/Fix314138/6000/free/410051_intl_x64_zip.exe)
-----------------------------------------------------------
KB Article Number(s): 981929
Language: All (Global)
Platform: i386
Location: (http://hotfixv4.microsoft.com/Windows%20Vista/sp3/Fix314138/6000/free/410048_intl_i386_zip.exe)