Actions conditionnelles à exécuter pendant la suppression

Il existe deux façons de créer la base de données d’installation, afin qu’une action soit appelée uniquement lorsque le package est désinstallé :

  • Si l’action est séquencée après l’action InstallValidate dans la table InstallExecuteSequence, l’auteur du package peut spécifier une condition REMOVE="ALL" pour l’action dans la colonne Condition. Notez qu’il n’est pas garanti que la propriété REMOVE soit définie sur ALL pendant une désinstallation avant que le programme d’installation exécute l’action InstallValidate. Notez que les guillemets autour de la valeur ALL sont requis dans ce cas.
  • Si l’action est séquencée après l’action CostFinalize et toutes les actions susceptibles de modifier l’état de la fonctionnalité, telles que l’action MigrateFeatureStates, l’action peut être conditionnée à l’état d’une fonctionnalité ou d’un composant particulier. ConsultezSyntaxe d’instruction conditionnelle. Utilisez cette option pour appeler une action pendant la suppression d’une fonctionnalité ou d’un composant particulier, qui peut se produire en dehors de la suppression complète de l’application.

Notez que la propriété Installed peut être utilisée dans des expressions conditionnelles pour déterminer si un produit est installé par ordinateur ou pour l’utilisateur actuel. Pour déterminer si le produit est installé pour un autre utilisateur, vérifiez la propriété ProductState.

Notez que les versions antérieures d’un produit peuvent être supprimées lors d’une mise à niveau par l’action SupprimerExistingProducts. La table Upgrade peut également définir la propriété REMOVE sur ALL dans ce cas. Pour déterminer si un produit est supprimé par une mise à niveau, vérifiez la propriété UPGRADEPRODUCTCODE. Le programme d’installation définit cette propriété uniquement lorsque RemoveExistingProducts supprime le produit. Le programme d’installation ne définit pas la propriété lors d’une désinstallation normale, comme la suppression avec Ajouter/Supprimer des programmes.