Свойство Session.FeatureRequestState

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

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

Синтаксис

propVal = Session.FeatureRequestState
Session.FeatureRequestState = propVal 

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

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

Remarks

Перед вызовом FeatureRequeststState необходимо вызвать метод 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 . В этом случае, если ФункцияRequestState вызывается с запрошенным состоянием msiInstallStateLocal или msiInstallStateSource, запрос не может быть выполнен для обоих компонентов. В этом случае оба компонента можно включить, если для компонента A задано значение msiInstallStateLocal и Component 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-00000000046

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

Сеанс

Компонент