在 [存取套件解決方案精靈] 中, UpgradeCode 欄位主要用來支援主要升級,不過小型和次要更新可能會使用 UpgradeCode 進行產品驗證。 在主要升級期間, FindRelatedProducts、 MigrateFeatureStates 和 RemoveExistingProducts 動作會偵測、移轉及移除舊版的產品。 FindRelatedProducts 動作會根據 UpgradeCode、ProductLanguage 和 ProductVersion 使用準則來搜尋產品。 這些條件在升級表中指定。
根據 FindRelatedProducts 動作所使用的準則,單一產品的不同語言和版本的 UpgradeCode 可以相同。 這是因為「升級」表格可讓您根據版本和語言行區分產品。
在相同產品的不同版本中,您可能永遠不需要變更 UpgradeCode。 每個獨立產品都應該有自己的 UpgradeCode。 產品套件也應該有自己的 UpgradeCode。 這樣做可讓套件使用「升級」表格中的多個資料列來升級舊版的套件或獨立產品。
下列兩個案例說明 UpgradeCode 的使用方式。
-
產品 A 和產品 B 隨附相同的 ProductLanguage、 ProductVersion 和 UpgradeCode。 產品 A 和產品 B 具有不同的 ProductCode。 由於產品已指派相同的 UpgradeCode,因此無法撰寫 Upgrade 表格,以區分舊版產品 A 與舊版產品 B。在此情況下,您將無法對忽略產品 B 的產品 A 進行升級安裝。因為這些是不同的產品,所以應該各自指派不同的 UpgradeCode。
-
產品 A 的英文和法文版本隨附相同的 ProductVersion 和 UpgradeCode。 產品 A 的英文和法文版本都有不同的 ProductLanguages 和 ProductCodes。 即使英文和法文版本共用相同的 UpgradeCode,也可以編寫 Upgrade 資料表,以便只偵測並升級舊版英文版本,並忽略舊版法文版本。 產品的不同語言版本可以使用相同的 UpgradeCode。