Я собираюсь разработать программу, которая будет установлена и запущена как служба Windows на внутренних серверах (с доступом в Интернет) нескольких клиентов. У меня нет физического доступа к серверам. То, над чем я работаю, - это схема надежного развертывания обновлений для программы.Автоматическое обновление службы Windows
Я потратил немало времени на поиск лучших практик для автообновлений Windows Service, но нашел очень мало полезной информации. Большинство методов, таких как ClickOnce, похоже, предназначены главным образом для приложений на базе Windows Forms.
Мой текущий план:
- При наличии обновлений, есть загрузка работает сервис, установить и запустить службу обновления.
- Служба обновления загрузит новую версию основной службы и установит ее рядом с текущей, все еще активной версией.
- Служба обновления затем останавливает старую версию и затем запускает новую версию службы.
- Новая версия отключает службу обновления во время запуска.
Некоторые важные проблемы для меня являются:
- Будучи в состоянии обрабатывать обновления как для основной службы и службы обновления
- Будучи в состоянии справиться перерывы, например, сбоя питания или сбоя соединения в любая точка в процессе обновления
Что интересно, если это общий способ решить эту проблему и/или если у меня нет ничего важного. Это слишком сложно или, возможно, слишком упрощенно? Как бы вы это сделали (или, что еще лучше, как вы это сделали успешно)?
Спасибо!
Спасибо за ценный вклад. Как вы справились с потенциальной ситуацией, когда процесс обновления прерван после удаления старой версии, но до того, как новый был установлен? Вы отслеживали, насколько далеко вы были в процессе? –
У меня нет инкрементных установок. Служба либо установлена, либо работает, либо нет. Поэтому я не отслеживаю, насколько далеко продвинулся процесс. Я * просто * использую проверки работоспособности, чтобы определить, если что-то не так, и при необходимости повторите попытку установки. –
@Ben Вы когда-нибудь публиковали свой опыт? –