Перезапустите поведение диспетчера с помощью установщика Windows
С установщиком Windows 4.0 и Restart Manager, можно ли предположить, что "Restart Manager" позаботится о закрытии приложений, и, следовательно, нет необходимости в каких-либо настраиваемых действиях для завершения процессов, содержащих файлы, предназначенные для обновления??
Существуют ли исключения, когда "Restart Manager" может не закрывать приложения? Конечно, я понимаю, что когда применяется такая политика, как DisableAutomaticApplicationShutdown, диспетчер перезапуска отключается.
Должен ли процесс, который должен быть завершен, удовлетворять некоторым критериям, чтобы можно было завершить работу с помощью Restart Manager?
Я запускаю мои MSI-пакеты без вывода сообщений.
Что я могу сделать, если MSI-пакет запрашивает перезагрузку, даже если включен "Restart Manager"?
Любой ответ будет очень признателен.
С уважением, Киран Хегде
1 ответ
Restart Manager - это, прежде всего, лучшая схема обнаружения (чем ранее) для обнаружения файлов, которые используются во время операции установки. Например, старая схема обнаруживала только запущенные приложения с окном верхнего уровня (исключая приложения в трее). Единственные приложения, которые автоматически закрываются и перезапускаются, это те, которые зарегистрировались для этого. По сути это означает, что ваше приложение вызывает RegisterApplicationRestart(), сообщая ему, с какой командной строки вы хотите перезапуститься. Приложение следит за сообщениями WM_QUERYENDSESSION, которые сообщают ему о том, что оно должно быть закрыто, и записывает информацию для восстановления для последующего перезапуска.
Пример здесь:
http://www.advancedinstaller.com/user-guide/qa-vista-restart-manager.html
Поэтому некоторые ваши вопросы не относятся, но, очевидно, смысл в том, чтобы предотвратить перезагрузку, независимо от того, установлена она без вывода сообщений или нет. Если для установки без вывода сообщений требуется перезагрузка, она просто сделает это, потому что безмолвие действительно означает "безмолвие", спрашивать некого, и установка завершается только после перезагрузки.
Когда приложения не выполняют эту работу, люди обычно прибегают к таким вещам, как вызовы WiX Util CloseApplication, чтобы отключить их.
Обратите внимание, что службы, помеченные как "Остановить при установке" (или, в зависимости от обстоятельств, деинсталляции), не приводят к ситуациям при использовании файлов. Механизм обнаружения использования файлов игнорирует файлы, которые используются службами, помеченными для остановки в таблице ServiceControl. Так что с сервисами в целом все в порядке, но если сервис порождает другие процессы, это может привести к ситуациям при использовании файлов.