Correctifs de séquencement

À compter de Windows Installer 3.0, les auteurs peuvent ajouter des informations de séquencement de correctifs à la base de données du package de correctifs dans la table MsiPatchSequence. Le programme d’installation peut utiliser ces informations pour déterminer quels correctifs sont applicables à un package d’installation, pour déterminer la meilleure séquence de correctifs et installer les correctifs dans un ordre constant indépendant de l’ordre fourni au système.

Windows Installer 2.0 : non pris en charge. Windows versions du programme d’installation antérieures à Windows Installer 3.0 installez des correctifs dans l’ordre dans lequel ils sont fournis au système, qu’ils contiennent une table MsiPatchSequence.

Les éléments suivants sont nécessaires pour utiliser la fonctionnalité de séquencement de correctifs.

  • Les packages de correctifs (fichiers.msp) doivent avoir une table MsiPatchSequence contenant des informations de séquencement. Le programme d’installation installe des correctifs qui n’ont pas de table MsiPatchSequence dans l’ordre dans lequel ils sont fournis au système.
  • Les correctifs sont installés à l’aide de Windows Installer 3.0 ou version ultérieure.

Windows Installer version 3.0 a les fonctions suivantes que les applications peuvent utiliser pour déterminer la meilleure séquence de correctifs.

  • La fonction MsiDeterminePatchSequence prend une liste de correctifs et détermine dans quelle séquence ils peuvent être appliqués à un produit installé. Cette fonction compte les correctifs ou produits déjà installés sur le système.
  • La fonction MsiDetermineApplicablePatches prend une liste de correctifs et détermine dans quelle séquence ils peuvent être appliqués à un produit installé. Cette fonction ne tient pas compte des correctifs ou produits déjà installés sur le système.

Windows Installer version 3.0 peut appliquer plusieurs correctifs à un produit dans une seule installation de mise à jour corrective. Le groupe de correctifs peut contenir des correctifs qui incluent des informations de séquence de correctifs (une table MsiPatchSequence ) et des correctifs qui ne le font pas. Le programme d’installation Windows installe les packages de correctifs sans cette table dans l’ordre qu’ils sont fournis au système. Le programme d’installation compte pour les packages de correctifs qui n’ont pas de table MsiPatchSequence, mais qui ont été marqués comme obsolètes ou remplacés par la méthode décrite dans la section suivante.

Lorsque Windows Installer version 3.0 installe plusieurs correctifs, il suit ces étapes pour déterminer la séquence dans laquelle des correctifs individuels sont appliqués au produit :

  1. Les correctifs installés sans table MsiPatchSequence sont placés dans la séquence dans l’ordre dans lequel ils ont été appliqués au produit. Le premier correctif appliqué est placé en premier dans la séquence.

  2. Les nouveaux correctifs sans table MsiPatchSequence sont placés dans la séquence. Ces correctifs sont appliqués par l’installation actuelle du correctif. Ils sont placés dans l’ordre qu’ils sont fournis au système et placés après tous les correctifs à l’étape 1.

  3. Les correctifs obsolètes sont éliminés de la séquence de correctifs.

    Notes

    Un package de correctifs peut spécifier dans la propriété Revision Number Summary une liste explicite de correctifs obsolètes à supprimer par le correctif. Cette liste est destinée à être utilisée par Windows versions du programme d’installation antérieures à la version 3.0. Windows Installer version 3.0 supprime les correctifs marqués comme obsolètes de la séquence, uniquement si les correctifs n’ont pas la table MsiPatchSequence.

     

  4. Le programme d’installation effectue les étapes de la séquence de mise à jour corrective et détermine les correctifs applicables dans la séquence donnée. Lorsque plusieurs correctifs sont appliqués à un produit, chaque correctif de la séquence transforme également la base de données d’installation du produit (fichier .msi). Un correctif est applicable dans une séquence particulière uniquement si sa transformation de base de données est capable de prendre le code de produit, la version, la langue et le code de mise à niveau résultant de l’application des transformations de tous les packages de correctifs précédents à la base de données de produit. Le programme d’installation élimine les correctifs inapplicables de la séquence.

  5. Le programme d’installation commence à placer des correctifs qui ont des informations de séquencement dans leur table MsiPatchSequence . Les correctifs de mise à niveau mineurs qui ont la table MsiPatchSequence sont placés dans la séquence après les correctifs qui ont été séquencés dans les étapes précédentes et dans l’ordre de leurs versions de produit les plus basses et les plus élevées après avoir été mis à niveau. Windows Programme d’installation élimine ensuite les correctifs de mise à niveau mineurs inapplicables dans cette séquence.

  6. Les correctifs de petite mise à jour ciblant des mises à niveau mineures ayant une table MsiPatchSequence sont affectés à la version la plus élevée du correctif de mise à niveau secondaire dans la séquence.

  7. Tous les petits correctifs de mise à jour qui restent non attribués après les étapes précédentes et qui ont la table MsiPatchSequence , sont placés dans la séquence avant la première mise à niveau mineure qui a la table MsiPatchSequence, et après la base de données d’installation .msi et les correctifs sans la table MsiPatchSequence. Windows Programme d’installation élimine ensuite les petits correctifs de mise à jour inapplicables dans cette séquence.

  8. Windows Installer version 3.0 élimine les correctifs remplacés de la séquence. Lorsqu’un correctif remplace les correctifs qui se produisent précédemment dans la séquence de correctifs, le correctif contient tous les correctifs dans les correctifs précédents. Les correctifs antérieurs ne sont plus nécessaires. Le programme d’installation Windows requiert les informations de la table MsiPatchSequence pour éliminer les correctifs remplacés.

    Remarque

    Les correctifs destinés à remplacer un ensemble antérieur de correctifs doivent être créés pour remplacer les correctifs antérieurs dans toutes les familles de correctifs. Les correctifs de petite mise à jour ne peuvent remplacer que les petites mises à jour. Les mises à niveau mineures peuvent remplacer les petites mises à jour et les autres mises à niveau mineures.

     

  9. Les correctifs de petite mise à jour qui transportent des tables MsiPatchSequence, sont séquencés dans les versions du produit en fonction des informations de séquencement dans leurs tables MsiPatchSequence. Cela détermine la séquence finale de mise à jour corrective.

Un correctif qui ne doit plus être utilisé peut être éliminé de la séquence de mise à jour corrective. Pour plus d’informations sur la façon d’éliminer les correctifs de la séquence de correctifs, consultez Élimination des correctifs.

Pour obtenir un exemple de la façon dont la table MsiPatchSequence peut être utilisée pour appliquer des correctifs dans l’ordre dans lequel ils sont créés, consultez l’exemple de mise à jour corrective multiple.