Project

General

Profile

Система автоматического обновления версии ПО

Система позволяет автоматически обновить ПО на рабочем месте, самостоятельно копируя файлы с указанной папки в каталог инсталляции, заменяя существующие. Системы автоматического создания копий заменяемых файлов нет. Возможности отменить копирование нет.

Каталог, из которого будут скопированы файлы, указывается в Общих настройках, на закладке Доп*:
Базовые установки\Путь поиска автоматических обновлений*

Логика работы

При проверке наличия обновления программа ищет в указанном каталоге подкаталог, совпадающий по имени с названием выполняемого файла.
Например, в настройках указан путь \\Server\updates, а выполняемый файл программы называется DJin.exe, то в этой ситуации программа будет искать каталог
\\Server\updates\Djin

Если такой каталог существует, то программа считывает содержимое 2-х файлов из этого каталога:

update.info Файл содержит название версии ПО в виде текста. Может редактироваться любым текстовым редактором.
Содержимое файла отображается пользователю при смене версии.
update.par Это текстовый файл, он содержит режим обновления в виде одной строки текста.
Возможные варианты(обязательно указание символа минус в начале текста):
-NOREQUEST
-MANUAL

Далее программа считывает файл update.info, находящийся в каталоге инсталляции, обычно C:\Program files\Digispot II\Djin\update.info, и сравнивает его содержимое с содержимым \\Server\updates\Djin\update.info

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

В случае, если необходимо обновление, программа действует в соответствии с режимом обновления:

-NOREQUEST Обновления устанавливаются без запроса пользователя при запуске приложения
-MANUAL Обновления устанавливаются только при явном обращении к пункту меню
Помощь\Установить обновления
Если обновление необходимо, то программа запрашивает разрешения на обновление, и, при согласии пользователя, устанавливает их.
В остальных случаях Обновления проверяются, но устанавливаются только после подтверждения пользователем.
Этот режим не рекомендуется использовать, т.к. пользователь обычно не знает, как отвечать на запрос об обновлении, и может неделями отвечать Нет, сохраняя у себя старую версию.

Окно подтверждения обновления выглядит так:

update_request.jpg

Название версии - это содержимое файла update.info.

Процесс обновления происходит следующим образом (в версиях до 2.15 процесс был другим):

  1. Обновляемое приложение копирует starter.exe из каталога обновления
  2. Обновляемое приложение запускает starter.exe с необходимыми параметрами. starter.exe ожидает завершения работы приложения, которое его запустило
  3. Обновляемое приложение завершает работу
  4. starter.exe выполняет копирование всех файлов из каталога обновления в каталог инсталляции, включая файл version.info. Таким образом при следующей проверке обновлений файлы версий совпадут и обновления не произойдет. Одноименные файлы, уже существующие в каталоге инсталляции, при этом перезаписываются, даже если у них установлен атрибут "Только чтение".
  5. starter.exe запускает на выполнение файл autoupdate.bat, если он был скопирован в данном сеансе обновления. Таким образом на обновляемом месте могут быть выполнены дополнительные действия: установка сервисов, регистрация приложений, автоматическое формирование файлов конфигурации и пр.
    Если в данном сеансе обновления файл autoupdate.bat не был скопирован, то он не будет выполнен, даже если он присутствует в каталоге инсталляции.

Starter.exe ведет лог своей работы в файле \DBG_LOG\starter.log, сохраняя в нем информацию о всех выполненных действиях, ошибках и пр.

Содержимое каталога обновления должен формировать сотрудник фирмы Тракт или специально подготовленный специалист.
Обычно этот каталог содержит копию файлов из каталога инсталляции ПО, за исключением файлов, защищенных ключами защиты (keydll_x.dll), которые привязаны к компьютерам с соответсвующими ключами.

update_request.jpg View (7.84 KB) Pavel Konstantinov (Tract), 01/06/2009 11:14

Update request
Add picture from clipboard (Maximum size: 645 MB)