Добавление условий запуска в проекты установщика Microsoft Visual Studio (проверьте, запущено ли приложение)
Я использую проекты установщика Microsoft Visual Studio для своего проекта Hybrid Widndows Forms/WPF. Мне нужно убедиться, что пользователь закрыл Приложение (более старую версию), если оно активно, прежде чем установщик сможет продолжить работу. Может ли это быть возможно с проектом установщика Visual Studio?
До сих пор я видел только то, что установщик по умолчанию добавляет зависимость в.NET Framework, и он не будет работать, если сначала не установить зависимость.
1 ответ
ОБНОВЛЕНИЕ: диалоговое окно Windows Installer-Avoid FileinUse при установке пакета для получения списка возможных альтернативных вариантов в дополнение к поддержке RestartManager.
RestartManager: функция RestartManager в MSI разработана, чтобы позволить вашему приложению корректно завершить работу и перезапустить себя во время процесса установки. Как добавить поддержку Windows Restart Manager в мое приложение? (Расширенный установщик)
По сути: вся идея заключается в том, чтобы предпочесть перезапуск приложений, а не перезапуск ОС. С этой целью:
- Ваше приложение звонит
RegisterApplicationRestart()
с командной строкой, указанной для его возможного перезапуска - он "регистрируется" для управления перезапуском. - Ваше приложение следит за
WM_QUERYENDSESSION
сообщения и завершает работу, сохраняя данные соответствующим образом, когда это сказано. - Затем RestartManager может перезапустить приложение после завершения установки (перезапуск можно отключить).
Важность: просто констатирую очевидное: перезагрузка ПК, работающего в сфере знаний, представляет собой серьезную проблему, и именно поэтому вы должны действительно добавить поддержку RestartManager в свое приложение. Это очень помогает для крупномасштабного развертывания, где вы можете использовать 16000 ПК. Также избегайте установки REINSTALLMODE в amus (принудительная перезапись), что может вызвать ненужные запросы перезагрузки. PS: Убедитесь, что ребята из вашего QA понимают и знают, как проверить функциональность / сценарий.
Ссылки: