AutoUpdate Library
    Общая информация     Документация     Купить     Обратная связь

1. Функции библиотеки


Описание:
     Функция читает содержимое файла Txt_File_Which_Includes_Last_Version, расположенного в директории AutoUpdate_Server_Address, и получает из него последнюю версию приложения, затем сравнивает её с текущей версией исполняющегося .exe файла. В случае различия версий функция возвращает 0, в случае совпадения версий функция возвращает 6.
Аргументы:
     AutoUpdate_Server_Address - URL адрес каталога, в корне которого располагаются все файлы, подлежащие обновлению
     Txt_File_Which_Includes_Last_Version - имя файла, содержащего последнюю версию приложения
Возвращаемые значения:
     0 - обнаруженая новая версия приложения
     1 - ошибка: Internet connect failure
     2 - ошибка: Internet session failure
     3 - ошибка: Config (Txt_File_Which_Includes_Last_Version) download failure
     5 - ошибка: No executable version
     6 - обновление не требуется


Описание:
     Функция читает содержимого файла Txt_File_Which_Includes_List_Of_All_Files_And_Their_MD5, хранящего список всех файлов приложения и их MD5 хэши и расположенного в директории AutoUpdate_Server_Address. Если найдены отличия хэшей файлов из читаемого списка от хэшей файлов, расположенных на компьютере пользователя, то эти файлы немедленно загружается с сервера. Старые файлы будут заменены новыми. Если же старых файлов не существует, то будут созданы новые. Также будут созданы все несуществующие в их пути файла папки. Функция возвращает 0, когда заканчивается проверка всех файлов приложения и их загрузка с сервера.
Аргументы:
     AutoUpdate_Server_Address - URL адрес каталога, в корне которого располагаются все файлы, подлежащие обновлению
     Txt_File_Which_Includes_List_Of_All_Files_And_Their_MD5 - имя файла, содержащего список всех файлов приложения и их MD5 хэши
Возвращаемые значения:
     0 - обновление выполнено успешно
     1 - ошибка: Internet connect failure
     2 - ошибка: Internet session failure
     3 - ошибка: Config (Txt_File_Which_Includes_List_Of_All_Files_And_Their_MD5) download failure
     4 - ошибка: File download failure
     7 - ошибка: Update not complete


Описание:
     Функция возвращает последнюю версию приложения, полученную в ходе выполнения функции CheckForUpdate.
     Внимание! Функцию GetLastVersion следует использовать только после выполнения CheckForUpdate. В противном случае функция возвращает "NaN".
Возвращаемые значения:
     Последняя версия приложения - в случае успешного выполнения
     "NaN" - в случае неправильного использования


Описание:
     Функция возвращает текущую версию приложения (исполняющегося .exe файла).
Возвращаемые значения:
     Текущая версия приложения - в случае успешного выполнения
     "NaN" - в случае ошибки


Описание:
     Дополнительная функция. Сравнивает MD5 хэш файла, расположение которого указано в filename, с предполагаемым хэшем md5hash_to_cmp. Функция возвращает результат выполнения операции strcmp(MD5(filename), md5hash_to_cmp).
Аргументы:
     filename - полный путь к файлу (для примера: "D:\\My folder\\my_file.xyz")
     md5hash_to_cmp - предполагаемый MD5 хэш
Возвращаемые значения:
     0 - хэши совпадают
     Любое другое значение - хэши различные


2. Как использовать библиотеку


Предисловие: выполняющий обновление (.exe) файл должен лежать в корне папки вашего приложения.

2.1. Для начала вам понадобится какой нибудь сервер, на котором можно хранить файлы (последней версии) вашего приложения. Причем файлы должны располагаться точно также, как и на компьютере, и ссылки (прямые) на них должны выглядеть примерно так (человеко-понятный урл (Friendly URL, Clean URL)):

     http://my_site.com/MyApp/sounds/my_snd.wav
     http://my_site.com/MyApp/textures/my_tex.png
     http://my_site.com/MyApp/my_img.png
     http://my_site.com/MyApp/myapp.exe_

Внимание! Исполняемые (.exe) файлы, находящиеся на сервере должны иметь расширение "exe_", а не "exe". Это объясняется тем, что некоторые хостинги не позволяют загружать .exe файлы по прямым ссылкам.

Если вы не имеете собственного сервера, то вы можете воспользоваться каким-нибудь хостингом, например, uCoz.ru (этот хостинг проверен и далее будут примеры именно с его использованием).

После загрузки на сервер файлов вашего приложения их список в файловом менеджере должен выглядеть примерно так:

Также, на сервер нужно загрузить текстовый файл, который будет содержать последнюю версию приложения (для примера: ). На изображении выше это файл version.txt.
Кроме этого, нужно создать список файлов приложения и их MD5 хэши в виде .txt файла.
Для этого призвана программа MD5 Dir Checker, содержащаяся в пакете с библиотекой. Пользоваться ей предельно легко: после запуска программы укажите папку, содержащую файлы вашего приложения (для примера: "D:\My folder\MyApp"), и после проверки всех содержащихся в директории файлов (это может занять некоторое время) она автоматически создаст список в filelist.txt.
Далее загружаем наш filelist.txt на сервер в корень директории нашего приложения.
Примерый вид filelist.txt:



2.2. Теперь поговорим о проекте приложения, которое будет использовать библиотеку.

В свойствах проекта (Visual Studio, C++) сделайте следующие изменения:
     1. Свойства конфигурации —> Общие —> Набор символов —> Не задано
     2. Свойства конфигурации —> Компоновщик —> Ввод —> Дополнительные зависимости —> добавьте в список "D:\AutoUpdate Library\aupd.lib" (без кавычек, с изменением пути на свой)
     3. В начало .cpp файла, в котором будут использоваться функции библиотеки, (или в любой связанный с ним .h файл) добавьте следующую строку (с изменением пути на свой):      

     4. Если файла ресурсов ещё не существует, создайте его. Добавьте новый ресурс типа "Version", если его не существует. Примерный вид такого ресурса показан на следующем изображении:
     ;

     Если вы всё сделали правильно, то ваш проект успешно настроен.


2.3. При создании новой версии вашего приложения вы должны:
     1. обновить версию приложения в ресурсе VS_VERSION_INFO;
     2. перезагрузить требуемые файлы на сервер (не забыть про ".exe_");
     3. обновить версию приложения в текстовом файле на сервере (для примера: version.txt);
     4. воспользоваться программой MD5 Dir Checker и загрузить полученный filelist.txt на сервер.


3. Пример использования библиотеки


3.1. В состав пакета с библиотекой входит демонстрационный пример её использования.
Это проект Win32 (Консольное приложение), созданное в Visual Studio 2012 на языке C++.
Вы можете скачать проект отдельно в виде rar или zip архива. В папке с проектом существует вложенная папка "Test run", в которой находится скомпилированная (в конфигурации Release) программа не самой последней версии. Вы можете её запустить и увидеть как она прекрасно работает.
Если вы не имеете Visual Studio 2012, то вы можете просто просмотреть файлы исходного кода (main.cpp, auto updater.cpp и другие).

3.2. Пример функции (для обновления приложения), которая использует библиотеку: