主要升級

主要升級是需要 ProductCode 屬性變更之產品的完整更新。

典型的主要升級會移除舊版的應用程式,並安裝新版本。 主要升級可以重新組織功能元件樹狀結構。 如需詳細資訊,請參閱 ProductCode變更產品代碼

在使用 Windows Installer 進行主要升級期間,安裝程式會搜尋使用者的電腦,尋找與擱置升級相關的應用程式,並在偵測到應用程式時,從系統登錄擷取已安裝的應用程式版本。 安裝程式接著會使用升級資料庫中的資訊來判斷是否要升級已安裝的應用程式。

若要啟用安裝程式升級功能,每個套件都應該有 UpgradeCode 屬性和 Upgrade Table。 每個獨立產品或產品套件都應該有自己的 UpgradeCode。 如需使用 UpgradeCode 的詳細資訊,請參閱 使用 UpgradeCode 一節。 Upgrade 資料表中的每個記錄都會提供升級程式碼、產品版本和語言資訊的組合,用來識別一組受升級影響的產品。 當 FindRelatedProducts Action 偵測到系統上已安裝受影響的產品時,它會將產品代碼附加至 Upgrade 資料表之 ActionProperty 資料行中的屬性。 RemoveExistingProducts 巨集指令MigrateFeatureStates Action會移除或移轉 ActionProperty 清單中所列的產品。 套件作者也可以遵循主題: 準備應用程式以進行未來主要升級中所述的程式。

您可以撰寫 Windows Installer 升級套件,如此一來,如果使用者已安裝較新版本的應用程式,主要升級將不會安裝。 如需如何撰寫不會透過較新版本安裝的套件的詳細資訊,請參閱 防止舊套件透過較新版本安裝

注意

Windows Installer 只會使用產品版本的前三個欄位。 如需這些欄位的描述,請參閱 ProductVersion 屬性。 如果您在產品版本中包含第四個欄位,安裝程式會忽略第四個欄位。

 

為更新的產品安裝完整套件,以套用主要升級的建議方法。 如需如何藉由安裝產品來套用主要升級的資訊,請參閱 安裝產品來套用主要升級

針對產品套用為 修補程式套件 的主要升級無法與其他更新進行排序,而且不是 可卸載的修補程式。 如需如何將主要升級修補程式套件套用至 Windows Installer 套件的資訊,請參閱 藉由修補產品的本機安裝來套用主要升級。 不建議使用修補程式套件來套用主要升級,而是藉由安裝完整產品來套用主要升級。

注意

如果應用程式安裝在個別使用者 安裝內容中,則也必須使用每個使用者內容來執行應用程式的任何主要升級。 如果應用程式安裝在每部電腦安裝內容中,則也必須使用每部電腦內容來執行應用程式的任何主要升級。 Windows Installer 不會跨安裝內容安裝主要升級。

 

您可以使用UPGRADEPRODUCTCODE屬性來設定在 InstallValidate之後排序的自訂動作來處理主要升級:

  • 如果您想要在產品卸載期間執行自訂動作,但不要在主要升級移除產品期間執行,請使用此條件。

    REMOVE=「ALL」 AND NOT UPGRADEPRODUCTCODE

  • 如果您想要只在主要升級期間執行自訂動作,請使用此條件。

    UPGRADEPRODUCTCODE