Share via


Session.FeatureRequestState, propriété

La propriété FeatureRequestState est une propriété en lecture/écriture de l’objet Session. Elle peut être utilisée pour obtenir l’état d’action actuel d’une fonctionnalité, ou pour demander un changement de l’action d’une fonctionnalité et de ses sous-fonctionnalités. La fonctionnalité doit être nommée dans la table Feature. Si un changement de l’état d’action d’une fonctionnalité est demandé, l’état d’action de tous les composants de la fonctionnalité changée peut l’être également. L’état d’action des composants partagés par plusieurs fonctionnalités est changé le cas échéant en fonction du nouvel état d’action des fonctionnalités (consultez la section Remarques). La propriété FeatureRequestState peut également être utilisée pour configurer toutes les fonctionnalités en même temps en spécifiant le mot clé ALL à la place d’un nom de fonctionnalité spécifique.

Cette propriété est en lecture/écriture.

Syntaxe

propVal = Session.FeatureRequestState
Session.FeatureRequestState = propVal 

Valeur de la propriété

Chaîne obligatoire qui spécifie le nom de la fonctionnalité à configurer. Pour affecter à toutes les fonctionnalités l’état de requête souhaité, utilisez le mot réservé ne respectant pas la casse : ALL.

Notes

La méthode SetInstallLevel doit être appelée avant FeatureRequestState.

Si l’état actuel de la fonctionnalité est demandé, la propriété FeatureRequestState retourne l’une des valeurs suivantes.

Nom de l’état de sélection Signification
msiInstallStateUnknown = -1 Aucune action n’est effectuée pour la fonctionnalité. Cela équivaut à une valeur nulle.
msiInstallStateAdvertised =1 La fonctionnalité doit être publiée.
msiInstallStateAbsent = 2 La fonctionnalité doit être supprimée.
msiInstallStateLocal = 3 La fonctionnalité doit être installée en tant que fonctionnalité s’exécutant localement.
msiInstallStateSource = 4 La fonctionnalité doit être installée en tant que fonctionnalité s’exécutant à partir de la source.
msiInstallStateDefault = 5 La fonctionnalité doit être réinstallée avec l’état d’action actuel de la fonctionnalité.

 

Par exemple, ce qui suit permet d’obtenir l’état actuel de « MyFeature » à partir d’une action personnalisée VBScript.

Dim iRequestState
iRequestState = Session.FeatureRequestState("MyFeature")

Si l’état de la fonctionnalité est configuré, la propriété FeatureRequestState doit avoir l’une des valeurs suivantes.

Nom de l’état de sélection Signification
msiInstallStateAdvertised = 1 Permet de publier la fonctionnalité.
msiInstallStateAbsent = 2 Permet de supprimer la fonctionnalité.
msiInstallStateLocal = 3 Permet d’installer la fonctionnalité en tant que fonctionnalité s’exécutant localement.
msiInstallStateSource = 4 Permet d’installer la fonctionnalité en tant que fonctionnalité s’exécutant à partir de la source.

 

Par exemple, ce qui suit permet de demander à une action personnalisée VBScript d’installer « MyFeature » pour une exécution locale sur l’ordinateur.

Session.FeatureRequestState("MyFeature")=3

Quand FeatureRequestState est appelé, le programme d’installation tente de définir au mieux l’état d’action de chaque composant lié à la fonctionnalité spécifiée en fonction de l’état spécifié. Toutefois, il existe des situations courantes où la demande ne peut pas être entièrement satisfaite. Par exemple, une fonctionnalité est liée à deux composants, le composant A et le composant B via la table FeatureComponents. Le composant A a l’attribut msidbComponentAttributesLocalOnly, et le composant B a l’attribut msidbComponentAttributesSourceOnly. Dans ce cas, si FeatureRequestState est appelé avec l’état demandé msiInstallStateLocal ou msiInstallStateSource, la demande ne peut pas être satisfaite pour les deux composants. Dans ce cas, vous pouvez activer les deux composants avec le composant A ayant la valeur msiInstallStateLocal et le composant B ayant la valeur msiInstallStateSource.

Si plusieurs fonctionnalités sont liées à un seul composant, l’état d’action final de ce composant est déterminé de la façon suivante : si au moins une fonctionnalité nécessite l’installation locale du composant, l’état d’action est msiInstallStateLocal, ce qui indique que le composant est installé localement. Si au moins une fonctionnalité nécessite l’exécution du composant à partir du média source, l’état d’action est msiInstallStateSource, ce qui indique que le composant est installé à partir du média source. Si au moins une fonctionnalité nécessite la suppression du composant, l’état d’action est msiInstallStateAbsent. Pour plus d’informations sur la sélection des fonctionnalités à installer, consultez la table Feature.

En cas d’échec de la propriété, vous pouvez obtenir des informations étendues sur l’erreur à l’aide de la méthode LastErrorRecord.

Configuration requise

Condition requise Valeur
Version
Windows Installer 5.0 sur Windows Server 2012, Windows 8, Windows Server 2008 R2 ou Windows 7. Windows Installer 4.0 ou Windows Installer 4.5 sur Windows Server 2008 ou Windows Vista. Windows Installer sur Windows Server 2003 ou Windows XP
DLL
Msi.dll
IID
IID_ISession est défini comme 000C109E-0000-0000-C000-000000000046

Voir aussi

session

Fonctionnalité