Автоматическое обновление службы Windows
У меня есть MSI, который устанавливает службу Windows. Я хочу, чтобы сервис получал сообщение и мог обновляться. Я попытался выделить новый процесс, который запускает другую сборку, которая, в свою очередь, запускает MSIEXEC с флагом /Uninstall, а затем устанавливает новый MSI.
Проблема здесь в том, что он, похоже, ничего не делает.. Я смотрел на это, кажется, проблема прав администратора. Я добавил глагол 'runas' для обеспечения прав администратора: MSI теперь работает, но требует взаимодействия с пользователем (что я не хочу) для соответствия UAC. Можно ли вообще автоматизировать этот процесс или нет?
Благодарю.
1 ответ
Ваш подход неверен.
Вам не нужно удалять пакет услуг самостоятельно, это должно быть обработано новой версией. Установщик Windows поддерживает это по умолчанию путем значительных обновлений.
Кроме того, вы не можете обновить службу во время ее работы. Таким образом, ваш сервис должен создать временный файл и запустить процесс. Затем этот временный процесс может обработать обновление (загрузка и запуск новой версии). Также этот временный процесс должен остановиться после обновления и каким-то образом удалить свой файл.
Это не так просто, как кажется. Вот почему хорошие приложения Updater стоят больших денег.