Автоматическое обновление файлов платформы
Материал из GedeminWiki
Версия от 11:43, 15 января 2013; SYSDBA (обсуждение | вклад)
Автообновление появилось в платформе начиная с версии 2.5.17. Алгоритм следующий:
- Параметры автообновления считываются из секции WEB CLIENT файла gedemin.ini.
- Если сервер автообновления не указан в параметрах, то после подключения к базе данных gedemin.exe опрашивает сайт [1] с которого получает адрес сервера автообновления (сейчас [2]).
- На сайт автообновления передается информация о текушей версии выполняемого модуля и токен обновления. При необходимости обновления в ответ сервер передает команду UPDATE.
- Получив команду UPDATE gedemin.exe запрашивает с сервера список файлов, скачивает те из них, которые имеют более новую версию, и располагает рядом с существующими файлами.
- Новым файлам присваивается расширение .NEW. Прежние версии файлов gedemin.exe и UDF\gudf.dll сохраняются с расширением .BAK.
- Список файлов подлежащих замене сохраняется во временном файле gedemin_upd.ini рядом с файлом gedemin.exe.
- Пользователь оповещается о необходимости перезапуска программы для завершения обновления.
- Стартует фоновый процесс gedemin_upd.exe, который ожидает завершения выполнения gedemin.exe и, как только становится возможным, заменяет существующие файлы их новыми версиями.
- Отчет о выполненных операциях и/или ошибках записывается в лог событий операционной системы.
Токен обновления
Токен указывается в параметре TOKEN секции WEB CLIENT файла gedemin.ini. На сегодняшний день поддерживаются следующие значения:
- NORMAL (значение по-умолчанию) -- последняя стабильная версия.
- BETA -- ежедневная сборка из текущих исходных кодов.
- DEBUG -- ежедневная сборка с отладочной информацией из текущих исходных кодов.
Ручное обновление
В окне О программе... на вкладке Обновление находится кнопка ручного обновления. Отличие автоматического фонового обновления от ручного режима:
- Автоматическое обновление: загружаются только файлы с новыми версиями.
- Ручное обновление: всегда загружаются и перезаписываются все файлы в соответствии с текущим токеном.