主要升級
主要升級是對產品的全面更新,其中需要變更 ProductCode 屬性。
典型的主要升級會移除舊版的應用程式,並安裝新版本。 主要升級可以重新組織功能元件樹狀結構。 如需詳細資訊,請參閱 ProductCode 和 變更產品代碼。
在使用 Windows Installer 進行重大升級期間,安裝程式會搜尋使用者的計算機中是否有與擱置升級相關的應用程式,並在偵測到應用程式時,從系統登錄擷取已安裝的應用程式版本。 安裝程式接著會使用升級資料庫中的資訊來判斷是否要升級已安裝的應用程式。
若要開啟安裝程式升級功能,每個套件都應該有 UpgradeCode 屬性和 Upgrade Table。 每個獨立產品或產品套件都應該有自己的 UpgradeCode。 如需使用 UpgradeCode 的詳細資訊,請參閱第 節中的使用 UpgradeCode。 Upgrade 數據表中的每個記錄都會提供升級程式碼、產品版本和語言信息的組合,以識別一組受升級影響的產品。 當 FindRelatedProducts Action 偵測到系統上已安裝受影響的產品時,它會將產品名稱附加至 Upgrade 數據表的 ActionProperty 數據行中的屬性。 RemoveExistingProducts Action 和 MigrateFeatureStates Action 將會移除或移轉在 ActionProperty 清單中列出的產品。 套件作者也可以遵循主題中所述的程序:準備應用程式以進行未來的主要升級。
您可以撰寫 Windows Installer 升級套件,如此一來,如果使用者已安裝較新版本的應用程式,則不會安裝主要升級。 如需如何撰寫不會透過較新版本安裝之套件的詳細資訊,請參閱 防止舊套件透過較新版本安裝
注意
Windows Installer 只會使用產品版本的前三個字段。 如需這些欄位的描述,請參閱 ProductVersion 屬性。 如果您在產品版本中包含第四個字段,安裝程式會忽略第四個字段。
建議的方法是安裝完整套件來對更新的產品進行主要升級。 如需如何藉由安裝產品來套用主要升級的資訊,請參閱 安裝產品套用主要升級。
針對產品以 修補程式套件 進行的主要升級無法與其他更新協同運作,而且不是 可卸載的修補程式。 如需如何將主要升級修補程式套件套用至 Windows Installer 套件的資訊,請參閱 透過修補產品的本機安裝來套用主要升級。 不建議使用修補程式套件來套用主要升級,而是安裝完整產品來套用主要升級。
注意
如果應用程式安裝在每個使用者 安裝內容,則也必須使用每個使用者內容執行應用程式的任何主要升級。 如果應用程式安裝在每部電腦安裝內容中,則也必須使用每部計算機內容執行應用程式的任何主要升級。 Windows Installer 不會跨安裝內容安裝主要升級。
您可以使用 UPGRADINGPRODUCTCODE 屬性,設定排序在 InstallValidate 之後的自定義動作,以處理主要升級。
如果您想要在產品解除安裝過程中執行自定義動作,但不在產品被重大升級所移除時執行,請使用此條件。
REMOVE=“ALL” AND NOT 升級產品代碼
如果您想要只在主要升級期間執行自定義動作,請使用此條件。