Как программно сделать обновление для приложения?

В статье изложу простую идею по реализации обновления для созданного Вами программного обеспечения. Этот способ я придумала еще в годы работы программистом в МГСУ и он нам тогда существенно помог.

Итак, всё по порядку. Вы написали собственное приложение. Как сделать автоматическое обновление для него?

Этот вопрос рано или поздно возникает у всех программистов. Особенно если Ваше приложение предназначено для большого количества пользователей и не набегаешься к каждому с обновлениями на носителях.

Сначала я долго искала пути реализации обновления приложения на базе готовых решений.

Заслуживают внимания две технологии:

  1. Технология  ClickOnce
  2. Технология LiteUpdate

Технология ClickOnce довольно удобна и мы использовали ее целый год, но потом отказались от нее по причине ее нестабильной работы после очередного обновления операционной системы Windows. Многие машины после обновления операционной системы перестали загружать обновления ClickOnce без видимой причины. Технология  LiteUpdate  нам не подошла из-за усиленной политики безопасности в организации.

Поэтому я реализовала свой простой, но надежный способ:

  1. В БД SQL сделала таблицу,  где храню  номер версии  программы. При выпуске новой версии меняю его вручную.
  2. В коде модуля прописываю номер новой версии. Конечно, можно читать номер  версии клиента в реестре, но у нас в организации было более  тысячи клиентских машин и далеко не все с одинаковыми версиями Windows. Соответственно, пути для считывания ключа в реестре различаются. Поэтому проще номер версии прописать в модуле и менять при выходе новой версии.

При запуске приложения проверяю номер версии в БД и сравниваю его с номером  новой версии, жестко прописанным в модуле. Если они отличаются, то предлагаю загрузить и установить новую версию приложения. При согласии пользователя скачиваю файл обновлений с сервера и запускаю автоматическое развёртывание на клиентской машине.

Вот, собственно, и всё.

obnovlenie_program

 

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *