1

В настоящее время я пытаюсь разработать сервис, который отслеживает и загружает обновления MSI. Служба будет работать под встроенной учетной записью с повышенными привилегиями (например, SYSTEM) и будет загружать и рекламировать MSI.

Этот MSI будет обновлением уже установленного приложения. Я понимаю, что ярлыки и т.д. Обновляются в рекламе, но что будет, если приложение уже запущено? Что произойдет, если пользователь запустит второй экземпляр уже запущенного приложения из этого ярлыка?

1 ответ1

2

Это зависит от того, как кодируется MSI. Например, в WiX вам нужно реализовать пользовательское действие, чтобы определить, запущено ли уже приложение или заблокирован ли файл для записи. Я думаю, что действие MSI по умолчанию, если у вас нет пользовательских действий, заключается в том, что он просто выдает диалог, такой как «Abort, Retry, Fail» (или аналогичный), если он пытается записать в файл, который заблокирован для редактирования (как это было бы быть, когда приложение работает).

Чтобы справиться со многими из этих угловых случаев, которые изящно обрабатываются хорошо известными приложениями (например, Skype, Firefox и т.д.) - например, завершением работающего экземпляра, - вы должны реализовать собственный код. Сам установщик Windows (и это все, что я могу предположить, если вы говорите о универсальном MSI) изначально не поддерживает такую функцию. Он поддерживает довольно мало из коробки, поэтому существуют такие вещи, как InstallShield.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .