Suppression de correctifs

À compter de Windows Installer version 3.0, il est possible de créer et d’installer des correctifs qui peuvent être désinstallés de manière unique, et dans n’importe quel ordre, sans avoir à désinstaller et réinstaller l’ensemble de l’application et d’autres correctifs. Windows Installer 3.0 permet également de créer des packages de correctifs avec une table MsiPatchSequence qui contient des informations de séquencement de correctifs. Avec les versions de Windows Installer antérieures à Windows Installer 3.0, la seule méthode permettant de supprimer des correctifs particuliers d’une application consiste à désinstaller l’ensemble de l’application corrigée, puis à réinstaller sans réappliquer les correctifs supprimés.

Si un correctif peut être désinstallé dépend de la façon dont le correctif a été créé, la version de Windows Programme d’installation utilisé pour installer le correctif et les modifications apportées par le correctif à l’application. Si un correctif n’est pas désinstallable, la seule façon de supprimer le correctif consiste à désinstaller l’ensemble de l’application et à réinstaller sans appliquer le correctif supprimé.

Vous pouvez désinstaller un ou plusieurs correctifs à l’aide d’une option de ligne de commande, de l’interface de script ou en appelant MsiRemovePatches à partir d’une autre application. Pour plus d’informations sur la désinstallation des correctifs , voir Désinstallation des correctifs.

La valeur de la propriété MSIPATCHREMOVE répertorie les correctifs à désinstaller. Pour chaque correctif de la liste, le programme d’installation vérifie que le correctif est désinstallable. Si l’utilisateur n’a pas de privilèges pour supprimer le correctif, le correctif est inconnu pour le produit, la stratégie de correctif empêche la suppression ou le correctif a été marqué comme non désinstallable, le programme d’installation retourne une erreur qui indique une transaction d’installation ayant échoué. Pour plus d’informations sur ce qui détermine si un correctif n’est pas désinstallable, consultez Les correctifs désinstallables .

Une fois le correctif vérifié comme amovible, le programme d’installation supprime le correctif de la séquence d’applications correctives. Pour plus d’informations sur la façon dont Windows Programme d’installation 3.0 détermine la séquence à utiliser lors de l’application de correctifs, consultez Les correctifs de séquencement. Notez que la suppression de correctifs de la séquence peut entraîner la mise à jour des correctifs marqués comme obsolètes ou remplacés.

Tous les correctifs sélectionnés pour la suppression sont répertoriés dans la propriété MsiPatchRemovalList . Cette propriété est une propriété privée définie par le programme d’installation et peut être utilisée dans des expressions conditionnelles ou interrogées par des actions personnalisées. La propriété contient la liste des GUID de code correctif des correctifs à supprimer. Une action personnalisée peut déterminer si l’état d’installation du correctif est appliqué, obsolète ou remplacé en appelant msiGetPatchInfoEx ou la propriété PatchProperty de l’objet Patch.

Une fois qu’un correctif a été supprimé, l’état de l’application est le même que si le correctif n’a jamais été installé. Si possible, le programme d’installation limite le processus au sous-ensemble des fonctionnalités affectées par la suppression du correctif. Le programme d’installation définit automatiquement la propriété REINSTALL sur la liste des fonctionnalités affectées. Les fichiers ajoutés par le correctif sont supprimés et les fichiers modifiés par le correctif sont remplacés. Les fichiers et les entrées de Registre sont restaurés dans la version attendue par le produit moins le correctif. Les fonctionnalités et les composants ajoutés par le correctif ne sont pas enregistrés à partir de l’application. Notez que le contenu supplémentaire ajouté par le correctif peut rester sur l’ordinateur de l’utilisateur si le contenu est utilisé par un autre correctif qui est toujours applicable.

Si un fichier d’un composant partagé est mis à jour par un correctif, la modification affecte toutes les applications qui partagent le composant. Lorsque le correctif est supprimé, la modification affecte à nouveau toutes les applications qui partagent le composant. Cela signifie que la suppression d’un correctif par une application peut restaurer le fichier du composant partagé vers une version inférieure à celle requise par une autre application. Cela peut corriger la première application, mais entraîner l’arrêt du travail de la deuxième application. Dans ce cas, la deuxième application peut être réparée en réinstallant la deuxième application à l’aide des méthodes décrites dans La réinstallation d’une fonctionnalité ou d’une application. Cela restaure la version corrigée du fichier.

MsiEnumapplicationsEx

MsiGetPatchInfoEx

MSIPATCHREMOVE

MsiRemovePatches

Séquencement de correctifs

Désinstaller des actions personnalisées de correctif

Correctifs désinstallables

Désinstallation des correctifs