![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Форумчанин
Регистрация: 14.12.2009
Сообщений: 716
|
![]()
Вообщем пишу программу авто-обновления и логика ее реализации примерно следующая.
При запуске программа-клиент проверяет если в ветке реестра существует ключ с версией данной программы. Если ее нет она создает новый ключ с версией. Отсчет обновлений начинается с 1.0.0.0 -> Полная версия Программы-Клиент. Программа-Клиент данной версии начинает закачивать все необходимые файлы для нормальной работы программы, полное скачивание программы осуществляется только один раз и данный момент учитывается. При каждом запуске программа-клиент отсылает по сокету текущую версию своей программы и соответственно программа-сервер сверяет пришедшую версию со своей версией. Если версия совпадает (обновлений не требуется) иначе производим новое обновление. Правильный ли подход хранить данные в реестре? Мне кажется не очень... Ведь может возникнуть ситуация это переустановка системы, как быть здесь если все данные в реестре потрутся и возникнет проблема с первоначальным скачиванием при версии 1.0.0.0. В любом случае начнется скачивание файлов так как в реестре не будет указана версия после переустановки и Программа-Клиент посчитает что клиент не установлен хотя User может уже обновлен до самой последней версии программы. Можно конечно хранить данные в XML рядом с программой, но ведь это тоже не совсем безопасно, найдутся так скажем пользователи экспериментаторы... Хотя можно хранить xml в ресурсах и выгружать его в случае если пользователь его удалил. Скорее всего это самый правильный вариант, но может у Вас тоже есть идеи по поводу этого. Последний раз редактировалось coNsept; 04.10.2012 в 16:50. |
![]() |
![]() |
![]() |
#2 |
Старожил
Регистрация: 22.05.2007
Сообщений: 9,087
|
![]()
При смене версии далеко не все файлы меняются и требуют обновления. При первом приближении, я бы поступал так:
на сервере текстовый файл со списком файлов программы и для каждого файла контрольная сумма. Этот файл собственно выкачивается и проверяются все файлы на соответствие контрольной сумме. Если сумма не "бьётся", значит файл повреждён, подменен или же устарел и его нужно выкачать с сервера. Попутно так можно будет "чинить" поломанные программы и автоматически получится лёгкий веб-инсталлятор ![]() ЗЫ. Если файлов сильно много, то можно оптимизировать: сравнивать версию в свойствах exe-файлика с "серверной" или же версию прописать в файле настроек (если пользователь изменит, то будет сам себе злобным буратиной). Я не люблю, когда программы что-то пишут в реестр. |
![]() |
![]() |
![]() |
#3 | |
Форумчанин
Регистрация: 14.12.2009
Сообщений: 716
|
![]() Цитата:
Я буду создавать XML файл и записывать туда версию обновления. (Файл будет лежать в папке на совести пользователя, хочет быть злобным буратиной пускай им будет и сам себе сломает удобные условия) Если к примеру пользователь давно не обновлялся и на данный момент версия его программы будет 1.0.0.3 а новая версия клиента 1.0.0.6 просто буду докачивать обновления 1.0.0.4/5/6. При каждом открытие буду проверять файл на его существование, если его не будет буду выгружать из ресурсов и так же туда же сохранять в случае если будет произведено обновление. Все равно спасибо за идеи, на счет CRC уже планировал это. |
|
![]() |
![]() |
![]() |
Опции темы | Поиск в этой теме |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Авто-копирование строки вниз при заполнении текущей (или авто-отображение скрытой ниже) | bygaga | Microsoft Office Excel | 6 | 25.11.2011 14:46 |
Настройка DynDNS Updater | Coder12 | Работа с сетью в Delphi | 1 | 10.07.2011 18:21 |
Updater vs Hosting | NoSilence | Общие вопросы Delphi | 1 | 03.12.2010 01:54 |
Web-сервер в консольном интерфейсе, используя интерфнйс сокетов | sustavovanton | Помощь студентам | 0 | 23.10.2009 17:11 |