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