Utilisation d’un UpgradeCode

UpgradeCode est principalement utilisé pour prendre en charge les mises à niveau majeures, bien que les correctifs de mise à niveau de petite taille et mineurs puissent utiliser UpgradeCode pour la validation du produit. Pendant les mises à niveau majeures, les actions FindRelatedProducts, MigrateFeatureStates et RemoveExistingProducts détectent, migrent et suppriment les versions précédentes du produit. L’action FindRelatedProducts recherche des produits à l’aide de critères basés sur UpgradeCode, ProductLanguage et ProductVersion. Ces critères sont spécifiés dans la table Upgrade.

Compte tenu des critères utilisés par l’action FindRelatedProducts, UpgradeCode peut être identique pour différentes langues et versions d’un même produit. Cela est dû au fait que la table Upgrade permet de différencier les produits selon les lignes de version et de langue.

Dans différentes versions du même produit, vous n’aurez peut-être jamais besoin de modifier UpgradeCode. Chaque produit autonome doit avoir son propre UpgradeCode. Une suite de produits doit également avoir son propre UpgradeCode. Cela permettra à la suite de mettre à niveau des versions antérieures de la suite ou des produits autonomes à l’aide de plusieurs lignes dans la table Upgrade.

Les deux scénarios suivants illustrent l’utilisation d’UpgradeCode.

  • Les produits A et B ont été fournis avec les mêmes ProductLanguage, ProductVersion et UpgradeCode. Le produit A et le produit B ont des ProductCode différents. Étant donné que les produits ont reçu le même UpgradeCode, la table Upgrade ne peut pas être créée pour différencier l’ancienne version du produit A de l’ancienne version du produit B. Dans ce cas, vous ne pouvez pas avoir d’installation de mise à niveau du produit A qui ignore le produit B. Étant donné qu’il s’agissait de produits différents, chacun d’eux aurait dû se voir attribuer un UpgradeCode différent.
  • Les versions anglaise et française du produit A ont été fournies avec les mêmes ProductVersion et UpgradeCode. Les versions anglaise et française du produit A ont des ProductLanguage et ProductCode différents. Même si les versions anglaise et française partagent le même UpgradeCode, il est possible de créer la table Upgrade de sorte que seule l’ancienne version anglaise soit détectée et mise à niveau et que l’ancienne version française soit ignorée. Différentes versions linguistiques d’un produit peuvent utiliser le même UpgradeCode.