翻譯|使用教程|編輯:況魚杰|2019-11-01 13:58:45.893|閱讀 817 次
概述:現有一些用于修改默認Windows Installer(MSI)文件傳輸行為以進行安裝和卸載的技術,但是如果使用InstallShield?進行軟件安裝,則可以在InstallShield環境的組件視圖或安裝設計視圖中修改永不覆蓋設置。
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
相關鏈接:
InstallShield是構建Windows安裝程序和MSIX包并直接在Microsoft Visual Studio中創建安裝的最快速最簡單的方法。借助InstallShield,您可以快速適應行業的變化,更快地進入市場并提供引人入勝的客戶體驗。
修改MSI的文件傳輸行為
現有一些用于修改默認Windows Installer(MSI)文件傳輸行為以進行安裝和卸載的技術:
使用永不覆蓋組件設置。
更改REINSTALLMODE屬性。
指定伴隨文件關系。
使用永久組件設置。
使用RemoveFile表刪除應用程序創建的文件。
如果使用InstallShield?進行軟件安裝,則可以在InstallShield環境的組件視圖或安裝設計視圖中修改永不覆蓋設置。如果將永不覆蓋組件屬性設置為是,則在目標系統上已經存在其密鑰文件的情況下,Windows Installer將跳過該組件的安裝。如果目標系統上不存在組件的密鑰文件,則Windows Installer將遵循正常的文件覆蓋行為。
您可以使用REINSTALLMODE屬性來修改默認的文件覆蓋行為。REINSTALLMODE屬性包含一個字符串,該字符串由表示應該如何覆蓋文件的一組字母組成。默認值為omus,其中o表示舊文件應被新文件覆蓋,m和u表示應重新安裝計算機和用戶注冊表數據,而s則應重新安裝快捷方式。
要修改文件覆蓋行為,可以將REINSTALLMODE值中的o替換為表示所需行為的另一個字母。一些可能的值是e,以覆蓋舊版本或同等版本的文件,或者a,覆蓋現有文件而不檢查其版本信息。
注意:REINSTALLMODE值不能僅限于組件或功能,而是適用于將要安裝的所有功能。
要修改REINSTALLMODE的值,通常在部署安裝時在命令行上設置該值。 由于REINSTALLMODE是公共屬性,因此可以在命令行上如下修改其值:
msiexec /i product.msi REINSTALLMODE=amus REINSTALL=ALL
(REINSTALL屬性包含要重新安裝的功能的逗號分隔列表,或用于重新安裝系統上已安裝的每個功能的特殊值ALL。)
調整文件覆蓋行為的另一種技術是使用伴隨文件,該文件將一個文件的覆蓋行為與另一個文件的行為相關聯。在運行時,如果安裝了伴隨文件關系的父級,則將安裝子級而不考慮其與現有文件的版本關系。要建立伴隨文件關系,請為子級的Version數據輸入父級文件的File-table鍵。默認情況下,文件的File-table鍵顯示在組件文件列表中屬性的最右邊(鍵)列中。
要在子代的版本信息中輸入父文件的File-table鍵,您可以使用文件的屬性面板,在右鍵單擊文件圖標并選擇屬性時可以使用該面板。在屬性面板中,選中替代系統版本復選框,然后在版本字段中輸入所需的密鑰。
同樣,您可以使用直接編輯器視圖在文件表記錄的版本字段中輸入所需的鍵。
文件傳輸行為的另一個方面是產品的卸載程序。如果您將組件的Permanent屬性設置為Yes,則在卸載組件時不會刪除該組件的數據。默認情況下,卸載產品時,將刪除安裝所安裝的所有數據。
默認情況下,產品的卸載將僅刪除原始安裝所安裝的文件。安裝完成后,由應用程序創建的文件將不會自動刪除。如果要刪除應用程序創建的文件,可以將記錄添加到項目的RemoveFile表中。在RemoveFile表中,您可以指定在安裝或刪除給定組件時要刪除的其他文件。
InstallShield幫助文檔:
如果您想要購買正版授權InstallShield,可以聯系咨詢相關問題。
關注慧聚IT微信公眾號???,了解產品的最新動態及最新資訊。
本站文章除注明轉載外,均為本站原創或翻譯。歡迎任何形式的轉載,但請務必注明出處、不得修改原文相關鏈接,如果存在內容上的異議請郵件反饋至chenjj@fc6vip.cn
文章轉載自:Flexera