Получение сведений о контексте для пользовательских действий с отложенным выполнением
Так как скрипт установки можно выполнить за пределами сеанса установки, в котором он был записан, сеанс может больше не существовать во время выполнения скрипта установки. В этом случае исходный дескриптор сеанса и свойства, заданные во время последовательности установки, недоступны для пользовательского действия с отложенным выполнением. Все функции, требующие дескриптора сеанса, ограничены несколькими методами, которые могут извлекать сведения о контексте или другие свойства, необходимые во время выполнения скрипта, должны быть записаны в скрипт установки. Например, отложенные пользовательские действия, которые вызывают библиотеки динамических ссылок (DLL), передают дескриптор, который можно использовать только для получения очень ограниченного объема информации. К функциям, которым не требуется дескриптор сеанса, можно получить доступ из отложенного пользовательского действия.
Пользовательские действия отложенного выполнения ограничиваются вызовом только следующих функций, для которых требуется дескриптор.
Функция | Описание |
---|---|
MsiGetProperty | Поддерживает ограниченный набор свойств при использовании с отложенным выполнением пользовательских действий: свойство CustomActionData, свойство ProductCode и свойство UserSID.Фиксация пользовательских действий не может использовать функцию MsiGetProperty для получения свойстваProductCode. Коммиты пользовательских действий могут использовать свойство CustomActionData для получения идентификатора продукта. |
MsiFormatRecord | Поддерживает ограниченный набор свойств при использовании с отложенным выполнением пользовательских действий: свойства CustomActionData и ProductCode. |
MsiGetMode | При вызове из отложенных пользовательских действий, действий фиксацииили действий отката, функция MsiGetMode возвращает значение True или False при проверке параметров режима MSIRUNMODE_SCHEDULED, MSIRUNMODE_COMMIT или MSIRUNMODE_ROLLBACK. Запросы на проверку любых других параметров режима выполнения из настраиваемого действия, таких как отложенное выполнение, подтверждение или откат, возвращают значение False. |
MsiGetLanguage | Числовой идентификатор языка для текущего продукта.Пользовательские действия не могут использовать функцию MsiGetLanguage. Выполнение пользовательских действий может использовать свойство CustomActionData для получения числового идентификатора языка. |
MsiProcessMessage | Обрабатывает сообщения об ошибках или ходе выполнения из настраиваемого действия. |
Для пользовательского действия, написанного в JScript или VBScript, требуется объект установки сеанса. Это тип объект сеанса, а установщик присоединяет его к скрипту с именем Session. Так как объект сеанса может не существовать во время отката установки, отложенное настраиваемое действие, написанное в скрипте, должно использовать один из следующих методов или свойств объекта сеанса для извлечения его контекста.
Имя | Описание |
---|---|
свойства режима | Возвращает значение True только для MSIRUNMODE_SCHEDULED. |
Property Property (объект сеанса) | Возвращает свойство CustomActionData, свойство ProductCode или свойство UserSID. |
Свойство языка (объект сеанса) | Возвращает числовый идентификатор языка сеанса установки. |
Метод сообщения | Вызывается для обработки ошибок и прогресса. |
свойства установщика | Возвращает родительский объект, который используется для функций, отличных от сеанса, таких как доступ к реестру и управление конфигурацией установщика. |
Значения свойств, заданные во время обработки последовательности установки в скрипт, могут быть недоступны во время выполнения скрипта. Во время выполнения скрипта всегда доступен только следующий ограниченный набор свойств.
Имя свойства | Описание |
---|---|
CustomActionData | Значение в момент обработки пользовательского действия в таблице последовательностей. Свойство CustomActionData доступно только для отложенных пользовательских действий выполнения. Немедленные пользовательские действия не имеют доступа к этому свойству. |
ProductCode | Уникальный код для продукта, строка GUID . |
UserSID | Устанавливается установщиком как идентификатор безопасности пользователя (SID). |
Если другие данные свойств требуются пользовательским действием отложенного выполнения, их значения должны храниться в скрипте установки. Это можно сделать с помощью второго настраиваемого действия.
Запись значения свойства в скрипт установки для использования во время отложенного выполнения пользовательского действия
- Вставьте небольшое пользовательское действие в последовательность установки, которое задает свойство с тем же именем, что и отложенное выполнение пользовательского действия. Например, если первичный ключ для пользовательского действия с отложенным выполнением — "MyAction", присвойте свойству с именем "MyAction" значение свойства X, которое необходимо получить. Необходимо задать свойство MyAction в последовательности установки перед пользовательским действием MyAction. Хотя любой тип пользовательского действия может задать данные контекста, самый простой метод — использовать настраиваемое действие назначения свойств (например, тип пользовательского действия 51).
- Во время обработки последовательности установки установщик записывает значение свойства X в скрипт выполнения в качестве значения свойства CustomActionData.
Связанные разделы