Поделиться через


Свойство Session.FeatureRequestState

Свойство FeatureRequestState является свойством для чтения и записи объекта Session . Его можно использовать для получения текущего состояния действия компонента или запроса на изменение действия компонента и его подкомпонентов. Функция должна быть названа в таблице Признаков . Если запрашивается изменение состояния действия компонента, состояние действия всех компонентов измененной функции также может быть изменено. Состояние действия компонентов, совместно используемых несколькими компонентами, будет изменено соответствующим образом в зависимости от состояния действия нового компонента (см. примечания). Свойство FeatureRequestState также можно использовать для настройки всех компонентов одновременно, указав ключевое слово ALL вместо определенного имени компонента.

Это свойство доступно для чтения и записи.

Синтаксис

propVal = Session.FeatureRequestState
Session.FeatureRequestState = propVal 

Значение свойства

Обязательная строка, указывающая имя настраиваемого компонента. Чтобы задать для всех компонентов требуемое состояние запроса, используйте зарезервированное слово без учета регистра: ALL.

Комментарии

Перед вызовом FeatureRequestState необходимо вызвать метод SetInstAllLevel.

Если запрашивается текущее состояние компонента, свойство FeatureRequestState возвращает одно из следующих значений.

Имя состояния выбора Значение
msiInstallStateUnknown = -1 Никакие действия для этой функции не предпринимаются. Это эквивалентно значению NULL.
msiInstallStateAdvertised =1 Функция должна быть объявлена.
msiInstallStateAbsent = 2 Функция должна быть удалена.
msiInstallStateLocal = 3 Компонент должен быть установлен в качестве локального запуска.
msiInstallStateSource = 4 Компонент должен быть установлен как запуск из источника.
msiInstallStateDefault = 5 Компонент необходимо переустановить с текущим состоянием действия компонента.

 

Например, следующий код получает текущее состояние MyFeature из настраиваемого действия VBScript.

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

Если состояние компонента настраивается, свойство FeatureRequestState должно иметь одно из следующих значений.

Имя состояния выбора Значение
msiInstallStateAdvertised = 1 Объявление функции.
msiInstallStateAbsent = 2 Удалите функцию.
msiInstallStateLocal = 3 Установите компонент в качестве локального запуска.
msiInstallStateSource = 4 Установите компонент как запуск из источника.

 

Например, следующие запросы из настраиваемого действия VBScript, чтобы установить MyFeature для локального выполнения на компьютере.

Session.FeatureRequestState("MyFeature")=3

При вызове FeatureRequestState установщик пытается установить состояние действия каждого компонента, привязанного к указанному компоненту, в указанное состояние, насколько это возможно. Однако бывают распространенные ситуации, когда запрос не может быть полностью выполнен. Например, если компонент связан с двумя компонентами, компонентом A и компонентом B, то через таблицу FeatureComponents и компонент A имеет атрибут msidbComponentAttributesLocalOnly , а компонент B — атрибут msidbComponentAttributesSourceOnly . В этом случае, если featureRequestState вызывается с запрошенным состоянием msiInstallStateLocal или msiInstallStateSource, запрос не может быть выполнен для обоих компонентов. В этом случае оба компонента можно включить, если для компонента A задано значение msiInstallStateLocal, а для компонента B — значение msiInstallStateSource.

Если с одним компонентом связано несколько компонентов, окончательное состояние действия этого компонента определяется следующим образом: Если хотя бы один компонент вызывает локальную установку компонента, устанавливается msiInstallStateLocal. Если хотя бы один компонент вызывает для запуска компонента с исходного носителя, устанавливается msiInstallStateSource. Если хотя бы один компонент вызывает удаление компонента, состояние действия — msiInstallStateAbsent. Дополнительные сведения о выборе компонентов для установки см. в таблице компонентов .

Если свойство завершается сбоем, можно получить расширенные сведения об ошибке с помощью метода LastErrorRecord .

Требования

Требование Значение
Версия
Установщик Windows 5.0 в Windows Server 2012, Windows 8, Windows Server 2008 R2 или Windows 7. Установщик Windows 4.0 или установщик Windows 4.5 в Windows Server 2008 или Windows Vista. Установщик Windows в Windows Server 2003 или Windows XP
DLL
Msi.dll
IID
IID_ISession определяется как 000C109E-0000-0000-C000-00000000000046

См. также раздел

Сеанс

Компонент