Название: Автоматичесмкое обновление програмы Отправлено: C.H. от Март 07, 2008, 17:28 Привет!
хочю сделать сабж. надо что бы при запуске программа лезла по http/ftp и проверяла не появилась ли новая версия. если есть выкачивала ее и уже потом запускала бы новую версию. даже не знаю с какой стороны подступится. В Линуксе все понятно, перезаписал банарник и все. а вот под Виндой себя же перезаписать не получится :( может уже есть готовый open-source проект, я просто плохо гуглю? Ну естественно написать все это добро на QT Название: Re: Автоматичесмкое обновление програмы Отправлено: Пантер от Март 07, 2008, 19:14 Нужно сделать отдельный exe, который и будет все делать. Т.е. твоя софтина лезет в нет и проверяет версию, если есть новая, то вызывается другая твоя прога UpdateMi с параметрами и основная софтина завершается. А вот UpdateMi выкачивает софтину, в цикле удаляет старую версию (цикл нужен чтобы дождаться завершения основной проги) и устанавливает новую.
Название: Re: Автоматичесмкое обновление програмы Отправлено: BRE от Март 07, 2008, 21:16 Нужно сделать отдельный exe, который и будет все делать. Т.е. твоя софтина лезет в нет и проверяет версию, если есть новая, то вызывается другая твоя прога UpdateMi с параметрами и основная софтина завершается. А вот UpdateMi выкачивает софтину, в цикле удаляет старую версию (цикл нужен чтобы дождаться завершения основной проги) и устанавливает новую. Или наоборот, сначала запускается "загрузчик", который проверяет новую версию в нете. Если новой версии нет, то запускаем текущую, иначе скачивает новую и запускаем ее.Название: Re: Автоматичесмкое обновление програмы Отправлено: C.H. от Март 07, 2008, 23:58 вы оба правы :)
хочется найти готовое решения, а то самому так лень писать ;) Название: Re: Автоматичесмкое обновление програмы Отправлено: pastor от Март 08, 2008, 00:00 Последний вариант имхо не подходит. Представим ситуацию, что плохой коннект или нет вобще коннекта. При этом юзер будет наблюдать каждый раз тормоз при запуске программы. А многие юзеры - это народ нервный ;) Лучше чтобы главная программа следила за обновлениями
Название: Re: Автоматичесмкое обновление програмы Отправлено: DpoHro от Март 08, 2008, 01:51 Основная программа запускает updater.exe или сама выступает в роли апдейтера производя это в отдельном потоке, но лучше внешняя программа.
updater.exe лезет на фтп и качает новый дистрибутив mydistr.exe, который сам уже все сделает после запуска и завершит работу программы и установит обновление. У меня дистрибутив проверяет установлено ли приложение на ПК, если нет, то ставит целиком, если да, то обновляет. Это и просто и надежно. 1 файл, скачался - ставим, не скачался, скачаем в следующий раз... Название: Re: Автоматичесмкое обновление програмы Отправлено: Вячеслав от Март 08, 2008, 20:39 Основная программа запускает updater.exe или сама выступает в роли апдейтера производя это в отдельном потоке, но лучше внешняя программа. +1 .updater.exe лезет на фтп и качает новый дистрибутив mydistr.exe, который сам уже все сделает после запуска и завершит работу программы и установит обновление. У меня дистрибутив проверяет установлено ли приложение на ПК, если нет, то ставит целиком, если да, то обновляет. Это и просто и надежно. 1 файл, скачался - ставим, не скачался, скачаем в следующий раз... Название: Re: Автоматичесмкое обновление програмы Отправлено: ритт от Март 09, 2008, 02:39 а меня такой вариант не устроил. что это за "обновление" такое, когда выкачивается весь дистрибутив? такую роскошь могут позволить себе программки с размером дистриба до 3-5 метров...а если 30-50?
Название: Re: Автоматичесмкое обновление програмы Отправлено: Вячеслав от Март 09, 2008, 13:33 И тож согласен ;) Для маленьких проектов - атомарный апдейт ..Для монстров с кучей плагинов и перекрестными связями между ними - пришлось в лоб (по аналогии с дебиановскими пакетами) рисовать нечто вроде метаинформации ( кто зависит от кого(и какой версии) ) :( Далее в отдельном потоке вытаскиваем , вежливо просим юзверя "а можно перегрузиться" и далее старые плагины - в bakup , новые в рабочий каталог и вперед ;)
Название: Re: Автоматичесмкое обновление програмы Отправлено: BRE от Март 10, 2008, 10:46 Последний вариант имхо не подходит. Представим ситуацию, что плохой коннект или нет вобще коннекта. При этом юзер будет наблюдать каждый раз тормоз при запуске программы. А многие юзеры - это народ нервный ;) Лучше чтобы главная программа следила за обновлениями Если все делать "в лоб", конечно не подходить. ;) Вопрос был как в винде перезаписать скачанный .exe. Простой вариант из другого процесса, который все скачает и когда все будет готово, подменит его и запустит. А к проблем коннекта можно добавить еще кучу, типа начали качать, а секретарша решила уйти на обед и выключила машину (делать поддержку докачки?) или программа работает месяцами без перезапуска (обновления есть, а их не кто не проверяет).Продумывать реализацию нужно под конкретные цели и нужды. Название: Re: Автоматичесмкое обновление програмы Отправлено: -QT- от Март 13, 2008, 11:23 Для себя я принял концепцию:
Основной запускающий модуль и куча плугинов. Вся реализация в плагинах. :D Загружающий модуль отслеживает в инете новый плагин, спрашивает пользователя "найдено обновление для ..." потом качает его если пользователь согласен установить обновление и просит перегрузить приложение. Старые версии плагинов сохраняются - поэтому можно откатиться на предидущую версию плагина. ??? Правда еще не закончил с проверкой обновлений через POP3, а так все работает. Вот еще один подход к обновлению. Название: Re: Автоматичесмкое обновление програмы Отправлено: DpoHro от Апрель 11, 2008, 22:26 Да мое решение для небольших приложений...
|