Dans l’Assistant Solution d’accès, le champ de code de produit est un GUID qui est l’identification principale d’une application ou d’un produit.
-
La mise à jour peut agrandir ou réduire l’arborescence des composants de fonctionnalité, mais elle ne doit pas réorganiser la hiérarchie existante des fonctionnalités et des composants décrits par les tables Feature et FeatureComponents. Il peut ajouter une nouvelle fonctionnalité à l’arborescence de composants de fonctionnalité existante. S’il supprime une fonctionnalité parente, il doit également supprimer toutes les fonctionnalités enfants de la fonctionnalité supprimée.
-
La mise à jour peut ajouter un nouveau composant ou une fonctionnalité nouvelle ou existante.
-
La mise à jour ne doit pas modifier le code du composant d’un composant. Par conséquent, une petite mise à jour ou une mise à niveau mineure ne doit jamais changer le nom du fichier de clé d’un composant, car cela nécessiterait la modification du code du composant.
-
La mise à jour ne doit pas modifier le nom du fichier .msi du package d’installation. Au lieu de cela, étant donné qu’il modifie le package, il doit modifier le code du package. Notez que cela signifie que la mise à jour peut modifier les tables, les actions personnalisées et les boîtes de dialogue dans le fichier .msi sans modifier le nom du fichier.
-
La mise à jour peut ajouter, supprimer ou modifier des fichiers, des clés de Registre ou des raccourcis de composants qui ne sont pas partagés par plusieurs fonctionnalités. Si la mise à jour modifie un fichier versionné, la version de ce fichier doit être incrémentée dans la table File. Si la mise à jour supprime des ressources, elle doit également mettre à jour les tables RemoveFile et RemoveRegistry pour supprimer les fichiers inutilisés, les clés de Registre ou les raccourcis qui ont déjà été installés.
-
La mise à jour d’un composant partagé par au moins deux fonctionnalités doit être à compatibilité descendante avec toutes les applications et fonctionnalités qui utilisent le composant. La mise à jour peut modifier la ressource d’un composant partagé, comme les fichiers, les entrées de Registre et les raccourcis, tant que les modifications sont à compatibilité descendante. Il n’est pas recommandé que la mise à jour ajoute ou supprime des fichiers, des entrées de Registre ou des raccourcis d’un composant partagé.
-
Une petite mise à jour est fournie en tant que package Windows Installer. (Un CD-ROM de produit complet n’est généralement pas fourni avec une petite mise à jour.)
Le code de produit doit être modifié si l’une des conditions suivantes est vraie pour la mise à jour :
-
La coexistence d’installations de produits d’origine et de produits mis à jour sur le même système doit être possible.
-
Le nom du fichier .msi a été modifié.
-
Le code de composant d’un composant existant a changé.
-
Un composant est supprimé d’une fonctionnalité existante.
-
Une fonctionnalité existante a été transformée en enfant d’une fonctionnalité existante.
-
Une fonctionnalité enfant existante a été supprimée de sa fonctionnalité parente.
-
Un composant peut être ajouté à une fonctionnalité existante sans nécessiter de modification du code de produit.
Remarque : L’ajout d’une nouvelle fonctionnalité enfant, composée entièrement de nouveaux composants, à une fonctionnalité existante ne nécessite pas de modifier le code du produit.
De nouvelles fonctionnalités enfants peuvent être créées en incluant msidbFeatureAttributesFollowParent et msidbFeatureAttributesUIDisallowAbsent dans le champ Attributes de la table Feature. Si la mise à niveau mineure ajoute uniquement de nouvelles fonctionnalités enfants, REINSTALL=ALL est suffisant pour forcer l’installation des nouvelles fonctionnalités enfants.
Une nouvelle fonctionnalité enfant peut être masquée à l’utilisateur. Pour synchroniser l’état d’installation d’une nouvelle fonctionnalité enfant avec sa fonctionnalité parente, définissez les bits msidbFeatureAttributesFollowParent et msidbFeatureAttributesUIDisallowAbsent pour la fonctionnalité enfant.