Я бы предположил, что вам нужно как можно раньше закрыть работающее приложение в InstallExecuteSequence и, конечно, до InstallInitialize , который запускает транзакцию установщика Windows, которая вносит изменения в систему .
Кроме того, вы должны выполнить ту же операцию ApplicationClose в InstallUISequence , а также, чтобы приложение закрывалось, пока вы в интерактивном режиме просматриваете меню установки. Вся InstallUISequence пропускается при установке в режиме без вывода сообщений, поэтому она также необходима в InstallExecuteSequence.
Имейте в виду, что вы можете случайно вызвать откат в пользовательском действии, возвращая код выхода / код ошибки, который msiexec.exe интерпретирует как ошибку. Если завершение пользовательского действия не имеет решающего значения, я отключаю проверку ошибок, чтобы продолжить установку. В этом случае это просто потребует перезагрузки.
Если вы пытаетесь закрыть или закрыть службу , MSI имеет встроенные функции для решения этой проблемы с помощью ServiceControl и ServiceInstall элементы ( и другие ).