Verwenden eines UpgradeCode
Der UpgradeCode wird in erster Linie für die Unterstützung größerer Upgrades verwendet, auch wenn kleine Upgrades und Upgradepatches für Nebenversionen den UpgradeCode zur Produktvalidierung verwenden können. Bei größeren Upgrades werden mit den Aktionen FindRelatedProducts, MigrateFeatureStates und RemoveExistingProducts frühere Versionen des Produkts erkannt, migriert und entfernt. Die FindRelatedProducts-Aktion sucht nach Produkten anhand von Kriterien, die auf UpgradeCode, ProductLanguage, und ProductVersion basieren. Diese Kriterien werden in der Upgrade-Tabelle angegeben.
Unter Berücksichtigung der Kriterien, die von der Aktion FindRelatedProducts verwendet werden, kann der UpgradeCode für verschiedene Sprachen und Versionen eines Produkts identisch sein. Das liegt daran, dass die Tabelle Upgrade eine Unterscheidung zwischen Produkten nach Version und Sprache ermöglicht.
Bei verschiedenen Versionen desselben Produkts müssen Sie den UpgradeCode möglicherweise nie ändern. Jedes eigenständige Produkt sollte über einen eigenen UpgradeCode verfügen. Eine Produktfamilie sollte ebenfalls über einen eigenen UpgradeCode verfügen. Auf diese Weise kann die Produktfamilie ein Upgrade früherer Versionen der Produktfamilie oder eigenständiger Produkte durchführen, indem sie mehrere Zeilen in der Upgrade-Tabelle verwendet.
Die folgenden beiden Szenarien veranschaulichen die Verwendung eines UpgradeCode.
- Produkt A und Produkt B wurden mit gleichen Werten für ProductLanguage, ProductVersion und UpgradeCode ausgeliefert. Produkt A und Produkt B weisen einen unterschiedlichen ProductCode auf. Da den Produkten derselbe UpgradeCode zugewiesen wurde, kann die Upgrade-Tabelle nicht erstellt werden, um die ältere Version von Produkt A von der älteren Version von Produkt B zu unterscheiden. In diesem Fall können Sie keine Upgradeinstallation von Produkt A durchführen, die Produkt B ignoriert. Da es sich um unterschiedliche Produkte handelt, hätte ihnen jeweils ein anderer UpgradeCode zugewiesen werden müssen.
- Die englische und die französische Version von Produkt A wurden mit der gleichen ProductVersion und dem gleichen UpgradeCode ausgeliefert. Sowohl die englische als auch die französische Version von Produkt A weisen unterschiedliche Werte für ProductLanguage und ProductCode auf. Auch wenn die englische und die französische Sprachversion denselben UpgradeCode verwenden, kann die Tabelle Upgrade so erstellt werden, dass nur die ältere englische Sprachversion erkannt und aktualisiert und die ältere französische Version ignoriert wird. Verschiedene Sprachversionen eines Produkts können denselben UpgradeCode verwenden.