Пользовательское действие установщика Windows перед любой проверкой


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

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

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

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

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

2 2

2 ответа:

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

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

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