Compartir a través de


Propiedad Session.FeatureRequestState

La propiedad FeatureRequestState es una propiedad de lectura y escritura del objeto Session. Se puede usar para obtener el estado de acción actual de una característica o para solicitar un cambio en la acción de una característica y sus subcaracterísticas. La característica debe tener un nombre en la tabla Feature. Si se solicita un cambio en el estado de acción de una característica, también se puede cambiar el estado de acción de todos los componentes de la característica modificada. El estado de acción de los componentes compartidos por más de una característica se cambiará según corresponda en función del nuevo estado de acción de la característica (vea Comentarios). La propiedad FeatureRequestState también se puede usar para configurar todas las características a la vez especificando la palabra clave ALL en vez de un nombre de característica específico.

Esta propiedad es de lectura y escritura.

Sintaxis

propVal = Session.FeatureRequestState
Session.FeatureRequestState = propVal 

Valor de propiedad

Cadena necesaria que especifica el nombre de la característica que se va a configurar. Para establecer todas las características en un estado de solicitud deseado, use esta palabra reservada, sin distinguir mayúsculas de minúsculas: ALL.

Observaciones

Se debe llamar al método SetInstallLevel antes de llamar a FeatureRequestState.

Si se solicita el estado actual de la característica, la propiedad FeatureRequestState devuelve uno de los siguientes valores.

Nombre del estado de selección Significado
msiInstallStateUnknown = -1 No se realiza ninguna acción para la característica. Esto equivale a un valor null.
msiInstallStateAdvertised =1 La característica se va a anunciar.
msiInstallStateAbsent = 2 La característica se va a quitar.
msiInstallStateLocal = 3 La característica se va a instalar en el entorno local.
msiInstallStateSource = 4 La característica se va a instalar como ejecución desde el origen.
msiInstallStateDefault = 5 La característica se va a reinstalar con el estado de acción actual de la característica.

 

Por ejemplo, a continuación se obtiene el estado actual de "MyFeature" de una acción personalizada de VBScript.

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

Si se configura el estado de la característica, la propiedad FeatureRequestState debe establecerse en uno de los siguientes valores.

Nombre del estado de selección Significado
msiInstallStateAdvertised = 1 Se anuncia la característica.
msiInstallStateAbsent = 2 Se elimina la característica.
msiInstallStateLocal = 3 Se instala la característica en el entorno local.
msiInstallStateSource = 4 Se instala la característica como ejecución desde el origen.

 

Por ejemplo, esto solicita que una acción personalizada de VBScript haga que "MyFeature" se instale para ejecutarse localmente en el equipo.

Session.FeatureRequestState("MyFeature")=3

Cuando se llama a FeatureRequestState, el instalador intenta establecer el estado de acción de cada componente vinculado a la característica especificada en el estado especificado lo mejor posible. Sin embargo, hay situaciones habituales en las que la solicitud no se puede responder por completo. Por ejemplo, si una característica está asociada a dos componentes, Componente A y Componente B, a través de la tabla FeatureComponents y Componente A tiene el atributo msidbComponentAttributesLocalOnly y el Componente B tiene el atributo msidbComponentAttributesSourceOnly. En este caso, si se llama a FeatureRequestState con un estado solicitado de msiInstallStateLocal o msiInstallStateSource, la solicitud no se puede completar para ambos componentes. En este caso, ambos componentes se pueden activar con el Componente A establecido en msiInstallStateLocal y el Componente B establecido en msiInstallStateSource.

Si más de una característica está vinculada a un único componente, el estado de acción final de ese componente se determina de la siguiente manera: Si al menos una característica necesita que el componente se instale localmente, se instala msiInstallStateLocal. Si al menos una característica necesita que el componente se ejecute desde el medio de origen, se instala msiInstallStateSource. Si al menos una característica necesita la eliminación del componente, el estado de la acción es msiInstallStateAbsent. Para más información sobre cómo se seleccionan las características para la instalación, consulte la tabla Feature.

Si se produce un error en la propiedad, puede obtener una información de error extendida mediante el método LastErrorRecord.

Requisitos

Requisito Value
Versión
Windows Installer 5.0 en Windows Server 2012, Windows 8, Windows Server 2008 R2 o Windows 7. Windows Installer 4.0 o Windows Installer 4.5 en Windows Server 2008 o Windows Vista. Windows Installer en Windows Server 2003 o Windows XP
Archivo DLL
Msi.dll
IID
IID_ISession se define como 000C109E-0000-0000-C000-000000000046

Consulte también

Sesión

Característica