Пользовательское действие установщика Windows ДО любой проверки - PullRequest
2 голосов
/ 27 апреля 2010

Я написал настраиваемое действие установщика Windows на основе учебника, найденного здесь: http://www.codeproject.com/kb/install/msicustomaction.aspx

Мое настраиваемое действие - убить фоновый процесс с заданным именем, которое все равно может открыть пользователь. Причина в том, что я не хочу, чтобы пользователи видели предупреждение о том, что данный EXE-файл запущен и должен быть закрыт, чтобы продолжить установку. Это прекрасно работает, когда MSI проходит через последовательность UI, когда действие создается в таблице «InstallUISequence», как в учебном пособии.
Однако, когда MSI используется без вывода сообщений (щелкните правой кнопкой мыши и выберите восстановление или удаление), тогда мое пользовательское действие, конечно, не будет выполнено.

Куда мне поместить собственное действие, чтобы оно выполнялось сразу же, когда оно выполняется без вывода сообщений?

Я попытался добавить его в «InstallExecuteSequence», но предупреждение «приложение запущено» по-прежнему отображается. Затем я попытался снизить порядковый номер моего настраиваемого действия до 5, но это также не помогло.

Примечание:
Я использую Orca для изменения MSI, сгенерированного из проекта установки Visual Studio. Затем я использую файл преобразования, чтобы применить его.

Ответы [ 2 ]

6 голосов
/ 28 апреля 2010

Необходимо запланировать действие дважды , один раз в последовательности UI и один раз в последовательности Execute, а затем запланировать, чтобы оно выполнялось только в первой последовательности, которая пытается выполнить его.(например, CustomAction/@execute='firstSequence' в WiX)

Обновление: Если вы используете Orca, см. документацию по Параметры планирования выполнения пользовательских действий , вы простонеобходимо убедиться, что установлен бит msidbCustomActionTypeFirstSequence.

0 голосов
/ 27 апреля 2010

Вы правильно разместили пользовательское действие в «InstallExecuteSequence». Кто показывает предупреждение "приложение запущено"? Вы убедились, что собственное действие действительно выполнено? Показывает ли Orca ваше пользовательское действие как первое действие в последовательности? Что говорит журнал установки?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...