Поведение Restart Manager с установщиком Windows

С установщиком Windows 4.0 и Restart Manager можно ли предположить, что Restart Manager позаботится о завершении работы приложений, и, следовательно, нет необходимости в каких-либо пользовательских действиях для завершения работы процессов, содержащих файлы, предназначенные для обновления?

Существуют ли какие-либо исключения, при которых Restart Manager не может закрыть приложения? Конечно, я понимаю, что при применении такой политики, как DisableAutomaticApplicationShutdown, Restart Manager отключается.

Должен ли процесс, подлежащий завершению, удовлетворять некоторым критериям, чтобы его можно было завершить с помощью диспетчера перезапуска? Я запускаю свои msi-пакеты молча.

Что делать, если пакет msi запрашивает перезагрузку, даже если включен диспетчер перезапуска?


person Kiran Hegde    schedule 21.04.2016    source источник
comment
В вашем посте много вопросов. Можете ли вы объяснить конкретную проблему, которую вы пытаетесь решить с помощью Restart Manager?   -  person jbudreau    schedule 21.04.2016


Ответы (1)


Restart Manager — это, прежде всего, лучшая схема обнаружения (чем раньше) для обнаружения файлов, которые используются во время операции установки. Например, старая схема обнаруживала только запущенные приложения с окном верхнего уровня (исключая приложения в трее). Единственные приложения, которые автоматически закрываются и перезапускаются, — это те, которые зарегистрировались для этого. В основном это означает, что ваше приложение вызывает RegisterApplicationRestart(), сообщая ему, с какой командной строкой вы хотите перезапуститься. Приложение отслеживает сообщения WM_QUERYENDSESSION, сообщающие о том, что оно будет выключено, и записывает информацию о восстановлении для последующего перезапуска.

Пример здесь:

http://www.advancedinstaller.com/user-guide/qa-vista-restart-manager.html

Так что некоторые из ваших вопросов не применимы, но, очевидно, дело в том, чтобы предотвратить перезагрузку, будь то автоматическая установка или нет. Если для автоматической установки требуется перезагрузка, она просто сделает это, потому что молчание на самом деле означает молчание, некого спросить, и установка не будет завершена до перезагрузки.

Когда приложения не выполняют эту работу, люди обычно прибегают к таким вещам, как вызовы WiX Util CloseApplication, чтобы закрыть их.

Обратите внимание, что службы, помеченные как «Остановить при установке» (или удалить, в зависимости от обстоятельств), не приводят к ситуациям, когда файлы используются. Механизм обнаружения используемых файлов игнорирует файлы, которые используются службами, помеченными как остановленные в таблице ServiceControl. Таким образом, службы, как правило, хороши, но если служба порождает другие процессы, это может привести к ситуации, когда файлы используются.

person PhilDW    schedule 21.04.2016
comment
Спасибо за подробности. Ссылка, которую вы разместили выше, относится к приложениям с графическим интерфейсом. RegisterApplicationRestart() предназначена только для приложений с графическим интерфейсом. Как насчет того, есть ли у моего приложения сервисы, в которых хранятся файлы? Будет ли Restart Manager автоматически отображать мою службу в диалоговом окне RMFilesInUse? Кроме того, можно ли предположить, что все службы и приложения Windows зарегистрированы в диспетчере перезапуска? - person Kiran Hegde; 10.05.2016