Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Так как настраиваемое действие можно запланировать как в пользовательском интерфейсе, так и в таблицах последовательностей, а также выполняться в процессе службы или клиента, настраиваемое действие может выполняться несколько раз.
Обратите внимание, что установщик:
- Выполняет действия в таблице последовательностей по умолчанию.
- Не выполняет действие, если поле условного выражения таблицы последовательности оценивается как False.
- Обрабатывает таблицу последовательности пользовательского интерфейса в клиентском процессе, если для уровня интерфейса внутреннего пользователя задан полный режим пользовательского интерфейса (см. msiSetInternalUI описание уровней пользовательского интерфейса).
- Служба, зарегистрированная по умолчанию при использовании Windows 2000, и в этом случае таблица последовательности выполнения обрабатывается в службе установщика.
Вы можете использовать следующие флаги опций для управления несколькими немедленными выполнениями пользовательских действий. Чтобы задать параметр, добавьте это значение в поле Type таблицы CustomAction. Ни один из следующих флагов не должен использоваться с отложенным выполнением настраиваемых действий.
-
(по умолчанию)
-
Шестнадцатеричное: 0x00000000
Десятичное: 0
Всегда выполняйте. Действие может выполняться дважды, если присутствует в обеих таблицах последовательности.
-
msidbCustomActionTypeFirstSequence
-
Шестнадцатеричное: 0x00000100
Десятичная: 256
Выполнить не более одного раза, если оно присутствует в обеих таблицах последовательностей. Всегда пропускает действие в последовательности выполнения, если последовательность пользовательского интерфейса запущена. Не действует в последовательности пользовательского интерфейса. Действие не обязательно должно быть частью или выполняться в последовательности пользовательского интерфейса, чтобы его можно было пропустить в последовательности выполнения. Не влияет на регистрацию службы установки.
-
msidbCustomActionTypeOncePerProcess
-
Шестнадцатеричное: 0x00000200
Десятичная: 512
Выполните один раз в рамках процесса, если он присутствует в обеих последовательных таблицах. Пропускает действие в последовательности выполнения, если последовательность интерфейса пользователя была запущена в том же процессе, например, оба выполняются в клиентском процессе. Используется для предотвращения повторного выполнения действий, которые изменяют состояние сеанса, такие как изменения свойств и баз данных.
-
msidbCustomActionTypeClientRepeat
-
Шестнадцатеричное: 0x00000300
Десятичное: 768
Выполнение происходит только в случае запуска на клиенте после завершения последовательности пользовательского интерфейса. Действие выполняется только в том случае, если последовательность выполнения выполняется на клиенте после последовательности пользовательского интерфейса. Может использоваться для предоставления либо логики или для подавления обработки, связанной с пользовательским интерфейсом, если это уже сделано для сеанса клиента.
Обратите внимание, что для выполнения пользовательского действия во время двух разных режимов выполнения создайте две записи в таблицу CustomAction. Например, чтобы иметь настраиваемое действие, которое вызывает библиотеку динамических ссылок C/C++ (DLL) (тип 1 пользовательского действия 1) как в режиме MSIRUNMODE_SCHEDULED, так и MSIRUNMODE_ROLLBACK, поместите две записи в таблицу CustomAction, которая вызывает одну и ту же библиотеку DLL, но с разными числовыми типами. Включите код, вызывающий MsiGetMode, чтобы определить, когда следует выполнять настраиваемое действие.
Связанные разделы