翻譯|使用教程|編輯:況魚杰|2019-12-30 13:15:22.277|閱讀 1086 次
概述:本文章將會描述不同類型的MSI更新所需的數據庫更改,并描述如何使用InstallShield中提供的工具來簡化更新開發過程。
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
相關鏈接:
InstallShield是構建Windows安裝程序和MSIX包并直接在Microsoft Visual Studio中創建安裝的最快速最簡單的方法。借助InstallShield,您可以快速適應行業的變化,更快地進入市場并提供引人入勝的客戶體驗。
本文章將會描述不同類型的MSI更新所需的數據庫更改,并描述如何使用InstallShield中提供的工具來簡化更新開發過程。
小升級
除了更新程序包中的新文件和其他數據之外,要創建次要升級,您還必須更改安裝程序的程序包代碼和產品版本。
要部署次要升級,以下是典型的命令行:msiexec /i product.msi REINSTALLMODE=voums REINSTALL=ALL
如果更新包含不想更新的功能,則應將REINSTALL設置為要更新的功能的逗號分隔列表,如以下命令所示(在REINSTALL屬性中使用的名稱區分大小寫):msiexec /i product.msi REINSTALLMODE=voums REINSTALL=F1,F3,F5
部署次要升級的重要設置是REINSTALLMODE標志 v,它指示使用更新的MSI數據庫運行安裝程序,并根據新數據庫重新緩存程序包。
如果沒有 v 標志,則Windows Installer會基于現有早期產品版本的緩存版本運行安裝程序。
注意:
重大升級
如上表所示,對于主要升級,必須更改軟件包代碼(在摘要信息流中);通常,您將更改產品版本(在屬性表的ProductVersion屬性中);并且現在還必須更改產品代碼(屬性表中的ProductCode屬性)。
更改產品代碼時,即使ProductName值可能相同,Windows Installer也會將您的最新版本和以前的產品版本視為不相關。如果您希望產品的兩個版本都可以在同一系統上安裝,則只需更改產品代碼和主安裝目錄(通常為INSTALLDIR)即可。(自然地,必須通過分離每個實例的配置設置和數據文件來開發應用程序以支持多個同時實例。)
相反,如果您希望最新的產品版本取代以前安裝的版本,則將在升級表中填充記錄。升級表中的記錄包含以下字段:
升級表中的樣本記錄可能如下所示:
MSI幫助庫頁面升級表中描述了屬性字段中使用的位標志。此處使用的值1025表示應檢測到所有語言(1024),并且應將功能狀態從已安裝產品遷移(1)到最新產品。除了將記錄添加到升級表中之外,還需要執行一些其他創作步驟:
提示:
在運行時,標準MSI操作FindRelatedProducts讀取升級表中的記錄。如果找到相關產品,則將該產品的產品代碼添加到操作屬性中。默認情況下,FindRelatedProducts放置在用戶界面和執行序列的前面。
MigrateFeatureStates操作(如果適用)嘗試將功能選擇狀態從已安裝的產品版本遷移到較新的版本。最后,標準的RemoveExistingProducts操作讀取存儲在Upgrade table操作屬性中的產品代碼,并實際上對這些產品執行無提示的nesteduninstallation操作。
可以將RemoveExistingProducts操作放置在不同的位置,以定義不同類型的升級行為。簡而言之,在執行序列的早期放置 RemoveExistingProducts會指示Windows Installer在安裝新產品之前完全刪除現有產品數據。 在執行序列的后期放置RemoveExistingProducts會導致升級安裝新產品數據,然后刪除舊數據。
提示:
以上內容對您使用InstallShield是否有幫助?如果您有其他的疑惑或者建議都可以在評論區留言。
推薦文章:
=================================================
如果您想要購買正版授權InstallShield,可以聯系咨詢相關問題。
關注慧聚IT微信公眾號???,了解產品的最新動態及最新資訊。
本站文章除注明轉載外,均為本站原創或翻譯。歡迎任何形式的轉載,但請務必注明出處、不得修改原文相關鏈接,如果存在內容上的異議請郵件反饋至chenjj@fc6vip.cn
文章轉載自: