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