Partager via


MigrateFeatureStates, action

L’action MigrateFeatureStates est utilisée lors de la mise à niveau et lors de l’installation d’une nouvelle application sur une application associée. MigrateFeatureStates lit les états de fonctionnalité dans l’application existante, puis définit ces états de fonctionnalité dans l’installation en attente. La méthode n’est utile que lorsque la nouvelle arborescence de fonctionnalités n’a pas considérablement changé à partir de l’original.

L’action MigrateFeatureStates exécute uniquement la première fois que le produit est installé. L’action MigrateFeatureStates ne s’exécute pas pendant le mode maintenance ou la désinstallation.

L’action MigrateFeatureStates s’exécute via chaque enregistrement de la table de mise à niveau en séquence et compare le code de mise à niveau, la version du produit et la langue de chaque ligne à tous les produits installés sur le système. Si l’action MigrateFeatureStates détecte une correspondance et si l’indicateur de bits msidbUpgradeAttributesMigrateFeatures est défini dans la colonne Attributs de la table Upgrade, le programme d’installation interroge les états de fonctionnalité existants pour le produit et définit ces états pour les mêmes fonctionnalités dans la nouvelle application. L’action migre uniquement les états de fonctionnalité si la propriété préélectionnée n’est pas définie.

Restrictions de séquence

L’action MigrateFeatureStates doit se présenter immédiatement après l’action CostFinalize. MigrateFeatureStates doit être séquencé dans la table InstallUISequence et la table InstallExecuteSequence . Le programme d’installation empêche MigrateFeatureStates d’s’exécuter dans InstallExecuteSequence si l’action s’est déjà exécutée dans InstallUISequence.

ActionData Messages

MigrateFeatureSettings envoie un message de données d’action pour chaque produit.

Remarques

Si plusieurs produits installés partagent une fonctionnalité, l’état d’installation de cette fonctionnalité peut différer entre les produits. L’action MigrateFeatureState utilise l’ordre de priorité suivant lors de la migration des états d’installation des fonctionnalités : exécuter local, exécuter à partir de la source, publié et désinstallé. Par exemple, le produit installé A peut avoir la fonctionnalité Y comme INSTALLSTATE_LOCAL et le produit installé B peut avoir la fonctionnalité Y comme INSTALLSTATE_ABSENT. Si une mise à niveau installe le produit C et migre l’état d’installation de la fonctionnalité Y, MigrateFeatureState définit l’état d’installation de la fonctionnalité Y dans le produit C pour INSTALLSTATE_LOCAL.

Pour plus d’informations sur l’utilisation de l’action MigrateFeatureStates pour les mises à niveau de produits, consultez Préparation d’une application pour les futures mises à niveau majeures.