Utilisation de composants transitifs

Une utilisation classique des composants transitifs consiste à préparer un produit à réinstaller lors d’une mise à niveau du système. L’auteur du package d’installation spécifie les composants qui doivent être échangés pendant une mise à niveau du système comme ayant l’attribut transitif. Lorsque l’utilisateur met ultérieurement à niveau le système, le produit doit être réinstallé. Lors de cette réinstallation, le programme d’installation supprime les composants précédents et installe les composants ultérieurs, sans avoir à installer l’ensemble du produit.

Inclure deux composants transitifs dans le package d’installation

  1. Incluez les deux composants transitifs dans le package d’installation.

  2. Créez les deux composants transitifs dans la table Component de la même façon que les composants standard. Chaque composant transitif doit avoir son propre GUID unique spécifié dans la colonne ComponentId.

  3. Incluez le bit msidbComponentAttributesTransitive dans la colonne Attributes de la table Component pour chaque composant transitif. Si ce bit est défini, le programme d’installation réévalue la valeur de l’énoncé figurant dans la colonne Condition lors d’une réinstallation.

    Si la valeur était précédemment False et remplacée par True, le programme d’installation installe le composant.

    Si la valeur était précédemment True et remplacée par False, le programme d’installation supprime le composant, et ce, bien que le composant présente d’autres produits en tant que clients.

    Notes

    Sauf si le bit transitif est défini, le composant reste activé une fois installé, même si l’instruction conditionnelle prend la valeur False sur une installation de maintenance ultérieure du produit. Les conditions doivent être basées uniquement sur les états de l’ordinateur. N’utilisez pas avec des conditions basées sur les états utilisateur ou les propriétés définies sur la ligne de commande, car cela peut entraîner la réinstallation du produit par un autre utilisateur.

     

  4. Entrez des expressions conditionnelles complémentaires dans les champs Condition de la table Control de telle sorte que lorsque la condition sur le premier composant transitif passe à False, la condition sur le deuxième composant transitif passe à True. Cela entraîne la suppression du premier composant et l’installation du deuxième composant lors de la réinstallation de l’application.

Une réinstallation du produit est nécessaire pour changer les composants transitifs. Les auteurs de packages doivent donc fournir aux utilisateurs une méthode pour réinstaller le produit et définir les modes de la propriété REINSTALLMODE. Il existe essentiellement trois façons de déclencher la réinstallation :

  • Exécutez et configurez la réinstallation via l’interface utilisateur en créant un package qui utilise l’interface utilisateur complète.
  • Exécutez la réinstallation à partir de la ligne de commande à l’aide de msiexec /f et sélectionnez les modes dans la liste pour l’option de ligne de commande/f.
  • Demandez à l’application d’appeler MsiReInstallProduct ou MsiReInstallFeature.

Le bit doit être utilisé uniquement avec des conditions basées sur les états de l’ordinateur. N’utilisez pas avec des conditions basées sur les états utilisateur ou les propriétés définies sur la ligne de commande, car cela peut entraîner la réinstallation du produit par un autre utilisateur.

Notes

À l’exception d’un bit transitif dans la colonne Attributes défini pour un composant, le composant reste activé une fois installé, et ce, bien que l’instruction conditionnelle dans la colonne Condition prend la valeur False lors d’une installation de maintenance ultérieure du produit.

Dans la plupart des cas, si une application inclut des composants transitifs, Windows Installer exige que la source de l’application la répare ou la mette à niveau. Dans ce cas, le CD-ROM de restauration du système fourni par un fabricant d’équipement d’origine ne fonctionne pas et une source d’installation réelle pour l’application doit être fournie.