Table Fonctionnalité
La table Fonctionnalité définit l’arborescence logique des fonctionnalités et contient les colonnes indiquées dans le tableau suivant.
Colonne | Type | Clé | Nullable |
---|---|---|---|
Fonctionnalité | Identificateur | O | N |
Feature_Parent | Identificateur | N | O |
Titre | Texte | N | O |
Description | Text | N | O |
Affichage | Integer | N | O |
Level | Integer | N | N |
Directory_ | Identificateur | N | O |
Attributs | Integer | N | N |
Colonnes
-
Fonctionnalité
-
Clé primaire utilisée pour identifier un enregistrement de fonctionnalités spécifique. La valeur de ce champ ne doit pas dépasser une longueur maximale de 38 caractères.
-
Feature_Parent
-
Clé facultative d’un enregistrement parent dans la même table.
La clé pointe vers la colonne Fonctionnalité. Si la fonctionnalité parente n’est pas sélectionnée, cette fonctionnalité n’est pas installée. Une valeur null dans ce champ indique que cette fonctionnalité n’a pas de parent et est un élément racine. La colonne Feature_Parent ne doit pas être égale à la colonne Fonctionnalité du même enregistrement.
Notes
La profondeur maximale d’une fonctionnalité est de 16. Une erreur 2701 se produit si une fonctionnalité qui dépasse cette profondeur maximale existe.
-
Titre
-
Courte chaîne de texte qui identifie une fonctionnalité.
Cette chaîne est répertoriée en tant qu’élément par le contrôle SelectionTree de la boîte de dialogue Sélection.
-
Description
-
Chaîne de texte plus longue qui décrit une fonctionnalité.
Cette chaîne localisable est affichée par le contrôle texte de la boîte de dialogue Sélection.
-
Affichage
-
Le nombre dans ce champ spécifie l’ordre dans lequel la fonctionnalité doit être affichée dans l’interface utilisateur.
La valeur détermine également si la fonctionnalité est initialement développée ou réduite. Si la valeur est null ou 0 (zéro), l’enregistrement n’est pas affiché.
- Si la valeur est impaire, le nœud de fonctionnalité est développé initialement.
- Si la valeur est égale, le nœud de fonctionnalité est réduit initialement.
-
Niveau
-
Niveau d’installation initial de cette fonctionnalité. Le traitement de la table Condition peut modifier la valeur de niveau.
Un niveau d’installation de 0 (zéro) désactive l’élément et l’empêche d’être affiché. Aucune fonctionnalité avec un niveau d’installation égal à 0 (zéro) n’est installée pendant aucune installation, y compris les installations administratives. Pour plus d’informations, consultez les informations « Niveau d’installation » dans la section Remarques de cette rubrique.
-
Directory_
-
La colonne Directory_ spécifie le nom d’un répertoire qui peut être configuré par une boîte de dialogue Sélection.
Étant donné que ce champ est une clé dans la table Répertoire=, le répertoire spécifié doit être répertorié dans la première colonne de la table Répertoire. Vous devez entrer une propriété publique dans cette colonne pour rendre le répertoire configurable et pour afficher un bouton Parcourir dans la boîte de dialogue Sélection.
-
Attributs
-
Option d’exécution à distance pour les fonctionnalités qui ne sont pas installées et pour lesquelles aucune demande d’état de fonctionnalité n’est effectuée à l’aide de l’une des propriétés suivantes.
- Propriété ADDLOCAL
- Propriété ADDSOURCE
- Propriété ADDDEFAULT
- Propriété COMPADDLOCAL
- Propriété COMPADDSOURCE
- Propriété FILEADDLOCAL
- Propriété FILEADDSOURCE
- Propriété REMOVE
- Propriété REINSTALL
- Propriété ADVERTISE
Ajoutez les bits indiqués à la valeur totale de cette colonne pour inclure une option d’exécution à distance.
- Si ce champ est vide, la valeur par défaut est 0 (zéro), msidbFeatureAttributesFavorLocal.
- Si le niveau d’installation de la fonctionnalité est égal à 0 (zéro) ou supérieur ou égal au niveau d’installation actuel, aucune modification n’est apportée à l’état de la fonctionnalité.
Nom Decimal Valeur hexadécimale Description msidbFeatureAttributesFavorLocal 0 0x0000 Les composants de cette fonctionnalité qui ne sont pas marqués pour l’installation à partir de la source sont installés localement. Un composant partagé par deux ou plusieurs fonctionnalités, dont certaines sont définies sur msidbFeatureAttributesFavorLocal et d’autres sur msidbFeatureAttributesFavorSource, est installé localement. Les composants marqués msidbComponentAttributesSourceOnly dans la table Composant sont toujours exécutés à partir du CD/serveur source. Les bits msidbFeatureAttributesFavorLocal et msidbFeatureAttributesFavorSource fonctionnent avec des fonctionnalités non répertoriées par la propriété ADVERTISE. msidbFeatureAttributesFavorSource 1 0x0001 Les composants de cette fonctionnalité non marqués pour l’installation locale sont installés pour s’exécuter à partir du CD-ROM ou du serveur source. Un composant partagé par deux ou plusieurs fonctionnalités, dont certaines sont définies sur msidbFeatureAttributesFavorLocal et d’autres sur msidbFeatureAttributesFavorSource, est installé pour s’exécuter localement. Les composants marqués msidbComponentAttributesLocalOnly dans la table Composant sont toujours installés localement. Les bits msidbFeatureAttributesFavorLocal et msidbFeatureAttributesFavorSource fonctionnent avec des fonctionnalités non répertoriées par la propriété ADVERTISE. msidbFeatureAttributesFollowParent 2 0x0002 Définissez cet attribut et l’état de la fonctionnalité est le même que celui du parent de la fonctionnalité. Vous ne pouvez pas utiliser cette option si la fonctionnalité se trouve à la racine d’une arborescence de fonctionnalités. Omettez cet attribut et l’état de la fonctionnalité est déterminé en fonction de msidbFeatureAttributesDisallowAdvertise et msidbFeatureAttributesFavorLocal et msidbFeatureAttributesFavorSource.
Pour garantir que l’état de la fonctionnalité enfant suit toujours l’état de son parent, même lorsque l’enfant et le parent sont initialement définis sur absents dans le contrôle SelectionTree, vous devez inclure msidbFeatureAttributesFollowParent et msidbFeatureAttributesUIDisallowAbsent dans les attributs de la fonctionnalité enfant.
Notez que si vous définissez msidbFeatureAttributesFollowParent sans définir msidbFeatureAttributesUIDisallowAbsent, le programme d’installation ne peut pas forcer la fonctionnalité enfant à sortir de l’état absent. Dans ce cas, la fonctionnalité enfant correspond à l’état d’installation du parent uniquement si l’enfant est défini sur autre chose qu’absent.
Définissez msidbFeatureAttributesFollowParent et msidbFeatureAttributesUIDisallowAbsent pour garantir qu’une fonctionnalité enfant suit l’état de la fonctionnalité parente.msidbFeatureAttributesFavorAdvertise 4 0x0004 Définissez cet attribut et l’état de la fonctionnalité est Publier. Si la fonctionnalité est répertoriée par la propriété ADDDEFAULT, ce bit est ignoré et l’état de la fonctionnalité est déterminé en fonction de msidbFeatureAttributesFavorLocal et msidbFeatureAttributesFavorSource. Omettez cet attribut et l’état de la fonctionnalité est déterminé en fonction de msidbFeatureAttributesDisallowAdvertise et msidbFeatureAttributesFavorLocal et msidbFeatureAttributesFavorSource. msidbFeatureAttributesDisallowAdvertise 8 0x0008 Notez que ce bit fonctionne uniquement avec les fonctionnalités répertoriées par la propriété ADVERTISE. Définissez cet attribut pour empêcher la publicité de la fonctionnalité.
Définissez cet attribut et si la fonctionnalité répertoriée n’est pas un parent ou un enfant, la fonctionnalité est installée selon msidbFeatureAttributesFavorLocal et msidbFeatureAttributesFavorSource.
Définissez cet attribut pour le parent d’une fonctionnalité répertoriée et le parent est installé.
Définissez cet attribut pour l’enfant d’une fonctionnalité répertoriée et l’état de l’enfant est Absent.
Omettez cet attribut et si la fonctionnalité répertoriée n’est pas un parent ou un enfant, l’état de la fonctionnalité est Publier.
Omettez cet attribut et si la fonctionnalité répertoriée est un parent ou un enfant, l’état de la fonctionnalité est Publier.msidbFeatureAttributesUIDisallowAbsent 16 0x0010 Définissez cet attribut pour que l’interface utilisateur n’affiche pas d’option permettant de modifier l’état de la fonctionnalité sur Absent. La définition de cet attribut force la fonctionnalité à l’état d’installation, que la fonctionnalité soit visible ou non dans l’interface utilisateur. Omettez cet attribut pour que l’interface utilisateur n’affiche pas d’option permettant de modifier l’état de la fonctionnalité sur Absent.
Définissez msidbFeatureAttributesFollowParent et msidbFeatureAttributesUIDisallowAbsent pour garantir qu’une fonctionnalité enfant suit l’état de la fonctionnalité parente.
La définition de cet attribut affecte non seulement l’interface utilisateur, mais force également la fonctionnalité à l’état d’installation, que la fonctionnalité soit visible dans l’interface utilisateur ou non.msidbFeatureAttributesNoUnsupportedAdvertise 32 0x0020 Définissez cet attribut pour désactiver la publicité pour la fonctionnalité si l’interpréteur de commandes du système d’exploitation ne prend pas en charge les descripteurs d programme d’installation Windows. Omettez cet attribut pour que la publicité n’est pas désactivée. Certains attributs sont exclusifs les uns des autres. La tentative de définir ces attributs ensemble sur la même fonctionnalité entraîne l’échec de la validation du package d’installation.
- N’utilisez pas msidbFeatureAttributesFavorAdvertise avec msidbFeatureAttributesDisallowAdvertise.
- N’utilisez pas msidbFeatureAttributesNoUnsupportedAdvertise avec msidbFeatureAttributesDisallowAdvertise ensemble.
- N’utilisez pas msidbFeatureAttributesFollowParent avec msidbFeatureAttributesFavorSource.
- Notez que les valeurs msidbFeatureAttributesFollowParent et msidbFeatureAttributesFavorLocal s’excluent mutuellement. Si la valeur msidbFeatureAttributesFollowParent est utilisée, la valeur msidbFeatureAttributesFavorLocal est supposée ne pas exister.
Notez que si une fonctionnalité enfant est installée, sa fonctionnalité parente est également installée. Si une fonctionnalité parente est installée, sa fonctionnalité enfant n’est pas nécessairement installée, sauf si ses attributs msidbFeatureAttributesFollowParent et msidbFeatureAttributesUIDisallowAbsent sont définis. Cette relation hiérarchique de l’installation des fonctionnalités parent et enfant est également utilisée pour les installations et installations GUI qui utilisent des propriétés de ligne de commande.
Notes
Plusieurs colonnes temporaires supplémentaires sont ajoutées à cette table lorsqu’elle est chargée en mémoire pour les calculs utilisés par la sélection des coûts et de l’interface utilisateur.
Un composant peut être partagé entre plusieurs fonctionnalités ou applications. Si plusieurs fonctionnalités font référence au même composant, ce composant est sélectionné pour installation si l’une des fonctionnalités associées est sélectionnée. Cela peut également être la raison pour laquelle les fonctionnalités enfants ne sont pas désinstallées lorsqu’une fonctionnalité parente est supprimée. Si la fonctionnalité enfant se compose de composants requis par d’autres fonctionnalités ou applications, le programme d’installation Windows ne supprime pas la fonctionnalité enfant.
Pour plus d’informations, consultez Contrôle des états de sélection des fonctionnalités.
Niveau d’installation :
- Pour toute installation, il existe un niveau d’installation défini, qui est une valeur intégrale comprise entre 1 et 32 767. La valeur initiale est déterminée par la propriété INSTALLLEVEL, qui est définie dans la table Propriété.
- Une fonctionnalité est installée uniquement si la valeur du niveau de fonctionnalité est inférieure ou égale au niveau d’installation actuel. L’interface utilisateur peut être créée de sorte que lorsque l’installation est initialisée, le programme d’installation permet à l’utilisateur de modifier le niveau d’installation de n’importe quelle fonctionnalité dans la table de fonctionnalités. Par exemple, un auteur peut définir des valeurs de niveau d’installation qui représentent des options d’installation spécifiques, telles que Personnalisé, Standard ou Minimum, puis créer une boîte de dialogue qui utilise SetInstallLevel ControlEvents pour permettre à l’utilisateur de sélectionner l’un de ces états.
- Selon l’état sélectionné par l’utilisateur, la boîte de dialogue définit la propriété de niveau d’installation sur la valeur correspondante. Si l’auteur attribue à Standard un niveau de 100 et que l’utilisateur sélectionne Standard, seules les fonctionnalités dont le niveau est inférieur ou égal à 100 sont installées. En outre, l’option Personnalisé peut conduire à une autre boîte de dialogue qui contient un contrôle SelectionTree. Le contrôle SelectionTree permet ensuite à l’utilisateur de modifier individuellement le fait que chaque fonctionnalité soit installée ou non.
Validation
ICE03
ICE06
ICE10
ICE14
ICE21
ICE32
ICE41
ICE45
ICE47
ICE50
ICE57
ICE59
ICE62
ICE67
ICE79
ICE86
ICE94