@apiwi

Как осуществить автоматическое обновление программы при ее запуске?

Имеется код скомп в .exe , как можно сделать автообновление программы при её запуске?Какие строчки добавить? Допустим, чтоб новый код скачивался по прямой ссылке. В инете облазил, толком без объяснений. Спасибо за помощь сразу.
  • Вопрос задан
  • 147 просмотров
Решения вопроса 1
trapwalker
@trapwalker Куратор тега Python
Программист, энтузиаст
А что конкретно вам не понятно?

При запуске прога делает HTTPS GET-запрос по предварительно зашитому в ней урлу. Если из заголовков следует, что эта версия проге не нужна, то можно оборвать соединение и не получать сам файл обновления. Того же можно добиться и двумя запросами: первый HEAD, а второй, при необходимости, GET.
Если скачана новая версия, нужно проверить её контрольную сумму и, очень желательно, подпись. Но если у вас https, то с подписью возиться не обязательно.
Далее нужно запустить в отдельном процессе шелл-скрипт, который дождётся завершения старой проги и после этого запустит новую.
На этом старая прога завершает свою работу.
Как только скрипт увидит, что старая закрылась, сразу подменяет файл и запускает новую.
Если что-то пошло не так, то можно записать сообщение о проблеме в файл и повторно запущенная старая прога, увидев это сообщение не будет пытаться обновиться снова на ту версию, поскольку "что-то пошло не так", а будет ждать новую.

Вариантов тут много. Наверно есть готовые библиотеки, которые это заточены делать. Из следовало бы создать, если бы их не существовало, а это значит, что они скорее всего уже есть и в изобилии. Ищите готовые решения.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы