3 回答

TA貢獻1824條經驗 獲得超6個贊
Windows Installer是一種部署技術,它的工作是安裝指定的文件和注冊表設置,并將它們保留在指定的安裝位置,并確保它們是正確的版本-為此目的,自我修復或彈性是一種機制。它的操作與開發(fā)人員即時交換文件以進行調試,開發(fā)和測試的需求相沖突。
作為開發(fā)人員,您可能有興趣部署MSI,然后動態(tài)刪除或替換文件以調試內容。在這些情況下,MSI可能會令人討厭,因為它永遠不會停止執(zhí)行其工作,并且會重新安裝正確的文件。這就是所謂的“ 自我修復 ”,可能會很煩人!:-)。
解決此問題的方法很多,MSI相當復雜。由于通常通過“ 廣告快捷方式 ” 調用“自我修復” ,因此避免此MSI功能的最簡單方法是直接從文件系統(tǒng)而不是通過快捷方式啟動EXE文件。除了最復雜的EXE文件外,這將繞過MSI自修復機制。您也可以在桌面上手動創(chuàng)建一個不公開的快捷方式,該快捷方式不會觸發(fā)自我修復。
對于記錄,自我修復由“ 自我修復入口點 ” 觸發(fā),以進行密鑰路徑驗證。它們包括公告的快捷方式,文件關聯(lián),COM注冊表數(shù)據(jù)等。
自我修復或彈性是它的正式名稱,還有很多其他內容,請查看這篇有關自我修復問題的綜合文章,以找到解決特定問題的方法。這是一篇很長的文章,但是如果您有自我修復問題,則值得閱讀。

TA貢獻1911條經驗 獲得超7個贊
我知道我在這方面遲到了,但是我發(fā)現(xiàn)將'NeverOverwrite =“ yes”'添加到要在安裝后修改的文件的組件定義中,會從撤消我的更改。
這幾乎解決了我的自我修復問題。我將此添加到了MSI中的所有配置文件和批處理文件中。
- 3 回答
- 0 關注
- 696 瀏覽
添加回答
舉報