Actions personnalisées de restauration
Lorsque le programme d’installation traite le script d’installation, il génère simultanément un script de restauration. En plus du script de restauration, le programme d’installation enregistre une copie de chaque fichier qu’il supprime pendant l’installation. Ces fichiers sont conservés dans un répertoire système masqué. Une fois l’installation terminée, le script de restauration et les fichiers enregistrés sont supprimés. Si une installation échoue, le programme d’installation tente de restaurer les modifications apportées pendant l’installation et de restaurer l’état d’origine de l’ordinateur.
Bien que les actions personnalisées qui planifient des opérations système en insérant des lignes dans la table de base de données soient annulées par une restauration de l’installation, les actions personnalisées qui modifient directement le système ou qui émettent des commandes vers d’autres services système ne peuvent pas toujours être annulées par une restauration. Une action de restauration personnalisée est une action que le programme d’installation exécute uniquement lors d’une restauration de l’installation, et son objectif est d’inverser une action personnalisée qui a apporté des modifications au système.
Une action personnalisée de restauration est un type d’action personnalisée d’exécution différée, car son exécution est différée lorsqu’elle est appelée pendant la séquence d’installation. Elle diffère d’une action personnalisée différée régulière en ce qu’elle n’est exécutée que pendant une restauration. Une action personnalisée de restauration doit toujours précéder l’action personnalisée différée qu’elle restaure dans la séquence d’action. Une action de restauration personnalisée doit également gérer le cas où l’action personnalisée différée est interrompue au milieu de l’exécution. Par exemple, si l’utilisateur appuie sur le bouton Annuler pendant l’exécution de l’action personnalisée.
Notez que les actions personnalisées de restauration ne peuvent pas s’exécuter de manière asynchrone. Consultez Actions personnalisées synchrones et asynchrones.
Le complément d’une action personnalisée de restauration est une action personnalisée de validation. Le programme d’installation exécute une action personnalisée de validation pendant la séquence d’installation, copie l’action personnalisée dans le script de restauration, mais ne l’exécute pas pendant la restauration.
Notez qu’une action personnalisée de restauration peut ne pas être en mesure de supprimer toutes les modifications apportées par les actions personnalisées de validation. Bien que le programme d’installation écrive à la fois les actions personnalisées de restauration et de validation dans le script de restauration, les actions personnalisées de validation ne s’exécutent qu’après que le programme d’installation a correctement traité le script d’installation. Les actions personnalisées de validation sont les premières actions à exécuter dans le script de restauration. Si une action personnalisée de validation échoue, le programme d’installation lance la restauration, mais il ne peut restaurer que les opérations déjà écrites dans le script de restauration. Cela signifie qu’en fonction de l’action personnalisée de validation, une restauration peut ne pas être en mesure d’annuler les modifications apportées par l’action. Vous pouvez ignorer les échecs dans les actions personnalisées de validation en créant l’action personnalisée pour ignorer les codes de retour.
Lorsque le programme d’installation exécute une action personnalisée de restauration, le seul paramètre de mode qu’il définit est MSIRUNMODE_ROLLBACK. Pour obtenir une description des paramètres du mode d’exécution, consultez MsiGetMode.
Pour spécifier une action personnalisée de restauration, vous pouvez ajouter un indicateur d’option au champ Type de la table CustomAction. Pour connaître l’indicateur d’option désignant une action personnalisée de restauration, consultez Options d’exécution dans le script d’actions personnalisées.
Les actions personnalisées de restauration et de validation ne s’exécutent pas lorsque la restauration est désactivée. Si un auteur de package a besoin de ces types d’actions personnalisées pour procéder correctement à une installation, il doit utiliser la propriété RollbackDisabled dans une condition qui empêche l’installation de se poursuivre lorsque la restauration est désactivée. Pour plus d’informations sur la désactivation de la restauration, consultez Installation de restauration (Windows Installer).