Condividi tramite


Session.FeatureRequestState, proprietà

La proprietà FeatureRequestState è una proprietà read-write dell'oggetto Session . Può essere usato per ottenere lo stato di azione corrente di una funzionalità o per richiedere una modifica nell'azione di una funzionalità e delle relative sottofeature. La funzionalità deve essere denominata nella tabella Funzionalità . Se viene richiesta una modifica allo stato dell'azione di una funzionalità, è possibile modificare anche lo stato dell'azione di tutti i componenti della funzionalità modificata. Lo stato dell'azione dei componenti condivisi da più di una funzionalità verrà modificato in base allo stato della nuova azione della funzionalità (vedere Osservazioni). La proprietà FeatureRequestState può essere usata anche per configurare tutte le funzionalità contemporaneamente specificando la parola chiave ALL anziché un nome di funzionalità specifico.

Si tratta di una proprietà di lettura/scrittura.

Sintassi

propVal = Session.FeatureRequestState
Session.FeatureRequestState = propVal 

Valore proprietà

Stringa obbligatoria che specifica il nome della funzionalità da configurare. Per impostare tutte le funzionalità su uno stato di richiesta desiderato, usare la parola senza distinzione tra maiuscole e minuscole: ALL.

Commenti

Il metodo SetInstallLevel deve essere chiamato prima di chiamare FeatureRequestState.

Se viene richiesto lo stato corrente della funzionalità, la proprietà FeatureRequestState restituisce uno dei valori seguenti.

Nome dello stato di selezione Significato
msiInstallStateUnknown = -1 Nessuna azione viene eseguita per la funzionalità. Equivale a Null.
msiInstallStateAdverted =1 La funzionalità deve essere pubblicizzata.
msiInstallStateAbsent = 2 La funzionalità deve essere rimossa.
msiInstallStateLocal = 3 La funzionalità deve essere installata come run-local.
msiInstallStateSource = 4 La funzionalità deve essere installata come run-from-source.
msiInstallStateDefault = 5 La funzionalità deve essere reinstallata con lo stato corrente dell'azione della funzionalità.

 

Ad esempio, il codice seguente ottiene lo stato corrente di "MyFeature" da un'azione personalizzata VBScript.

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

Se lo stato della funzionalità viene configurato, la proprietà FeatureRequestState deve essere impostata su uno dei valori seguenti.

Nome dello stato di selezione Significato
msiInstallStateAdvertised = 1 Annunciare la funzionalità.
msiInstallStateAbsent = 2 Rimuovere la funzionalità.
msiInstallStateLocal = 3 Installare la funzionalità come run-local.
msiInstallStateSource = 4 Installare la funzionalità come run-from-source.

 

Ad esempio, le richieste seguenti da un'azione personalizzata VBScript installata da "MyFeature" per l'esecuzione in locale nel computer.

Session.FeatureRequestState("MyFeature")=3

Quando viene chiamato FeatureRequestState , il programma di installazione tenta di impostare lo stato dell'azione di ogni componente associato alla funzionalità specificata allo stato specificato, il più possibile possibile. Tuttavia, esistono situazioni comuni quando la richiesta non può essere completamente rispettata. Ad esempio, se una funzionalità è associata a due componenti, Component A e Component B, tramite la tabella FeatureComponents e Component A ha l'attributo msidbComponentAttributesLocalOnly e il componente B ha l'attributo msidbComponentAttributesSourceOnly . In questo caso, se FeatureRequestState viene chiamato con uno stato richiesto di msiInstallStateLocal o msiInstallStateSource, la richiesta non può essere rispettata per entrambi i componenti. In questo caso, entrambi i componenti possono essere attivati con Component A impostato su msiInstallStateLocal e Component B impostato su msiInstallStateSource.

Se più funzionalità sono collegate a un singolo componente, lo stato finale dell'azione di tale componente viene determinato come indicato di seguito: se almeno una funzionalità chiama l'installazione locale del componente, viene installata msiInstallStateLocal. Se almeno una funzionalità chiama l'esecuzione del componente dal supporto di origine, viene installato msiInstallStateSource. Se almeno una funzionalità chiama la rimozione del componente, lo stato dell'azione è msiInstallStateAbsent. Per altre informazioni su come vengono selezionate le funzionalità per l'installazione, vedere la tabella Funzionalità .

Se la proprietà ha esito negativo, è possibile ottenere informazioni di errore estese usando il metodo LastErrorRecord .

Requisiti

Requisito Valore
Versione
Windows Installer 5.0 in Windows Server 2012, Windows 8, Windows Server 2008 R2 o Windows 7. Windows Installer 4.0 o Windows Installer 4.5 in Windows Server 2008 o Windows Vista. Windows Installer in Windows Server 2003 o Windows XP
DLL
Msi.dll
IID
IID_ISession è definito come 000C109E-0000-0000-C000-000000000000046

Vedi anche

sessione

Funzionalità