Russian Qt Forum
Ноябрь 24, 2024, 12:42
Добро пожаловать,
Гость
. Пожалуйста,
войдите
или
зарегистрируйтесь
.
Вам не пришло
письмо с кодом активации?
1 час
1 день
1 неделя
1 месяц
Навсегда
Войти
Начало
Форум
WIKI (Вики)
FAQ
Помощь
Поиск
Войти
Регистрация
Russian Qt Forum
>
Forum
>
Qt
>
Общие вопросы
>
Автоматичесмкое обновление програмы
Страниц: [
1
]
Вниз
« предыдущая тема
следующая тема »
Печать
Автор
Тема: Автоматичесмкое обновление програмы (Прочитано 8886 раз)
C.H.
Гость
Автоматичесмкое обновление програмы
«
:
Март 07, 2008, 17:28 »
Привет!
хочю сделать сабж.
надо что бы при запуске программа лезла по http/ftp и проверяла не появилась ли новая версия.
если есть выкачивала ее и уже потом запускала бы новую версию.
даже не знаю с какой стороны подступится.
В Линуксе все понятно, перезаписал банарник и все.
а вот под Виндой себя же перезаписать не получится
может уже есть готовый open-source проект, я просто плохо гуглю?
Ну естественно написать все это добро на QT
Записан
Пантер
Administrator
Джедай : наставник для всех
Offline
Сообщений: 5876
Жаждущий знаний
Re: Автоматичесмкое обновление програмы
«
Ответ #1 :
Март 07, 2008, 19:14 »
Нужно сделать отдельный exe, который и будет все делать. Т.е. твоя софтина лезет в нет и проверяет версию, если есть новая, то вызывается другая твоя прога UpdateMi с параметрами и основная софтина завершается. А вот UpdateMi выкачивает софтину, в цикле удаляет старую версию (цикл нужен чтобы дождаться завершения основной проги) и устанавливает новую.
Записан
1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
BRE
Гость
Re: Автоматичесмкое обновление програмы
«
Ответ #2 :
Март 07, 2008, 21:16 »
Цитата: panter_dsd от Март 07, 2008, 19:14
Нужно сделать отдельный exe, который и будет все делать. Т.е. твоя софтина лезет в нет и проверяет версию, если есть новая, то вызывается другая твоя прога UpdateMi с параметрами и основная софтина завершается. А вот UpdateMi выкачивает софтину, в цикле удаляет старую версию (цикл нужен чтобы дождаться завершения основной проги) и устанавливает новую.
Или наоборот, сначала запускается "загрузчик", который проверяет новую версию в нете. Если новой версии нет, то запускаем текущую, иначе скачивает новую и запускаем ее.
Записан
C.H.
Гость
Re: Автоматичесмкое обновление програмы
«
Ответ #3 :
Март 07, 2008, 23:58 »
вы оба правы
хочется найти готовое решения, а то самому так лень писать
Записан
pastor
Administrator
Джедай : наставник для всех
Offline
Сообщений: 2901
Re: Автоматичесмкое обновление програмы
«
Ответ #4 :
Март 08, 2008, 00:00 »
Последний вариант имхо не подходит. Представим ситуацию, что плохой коннект или нет вобще коннекта. При этом юзер будет наблюдать каждый раз тормоз при запуске программы. А многие юзеры - это народ нервный
Лучше чтобы главная программа следила за обновлениями
Записан
Integrated Computer Solutions, Inc. (ICS)
http://www.ics.com/
DpoHro
Гость
Re: Автоматичесмкое обновление програмы
«
Ответ #5 :
Март 08, 2008, 01:51 »
Основная программа запускает updater.exe или сама выступает в роли апдейтера производя это в отдельном потоке, но лучше внешняя программа.
updater.exe лезет на фтп и качает новый дистрибутив mydistr.exe, который сам уже все сделает после запуска и завершит работу программы и установит обновление.
У меня дистрибутив проверяет установлено ли приложение на ПК, если нет, то ставит целиком, если да, то обновляет.
Это и просто и надежно. 1 файл, скачался - ставим, не скачался, скачаем в следующий раз...
Записан
Вячеслав
Гость
Re: Автоматичесмкое обновление програмы
«
Ответ #6 :
Март 08, 2008, 20:39 »
Цитата: DpoHro от Март 08, 2008, 01:51
Основная программа запускает updater.exe или сама выступает в роли апдейтера производя это в отдельном потоке, но лучше внешняя программа.
updater.exe лезет на фтп и качает новый дистрибутив mydistr.exe, который сам уже все сделает после запуска и завершит работу программы и установит обновление.
У меня дистрибутив проверяет установлено ли приложение на ПК, если нет, то ставит целиком, если да, то обновляет.
Это и просто и надежно. 1 файл, скачался - ставим, не скачался, скачаем в следующий раз...
+1 .
Записан
ритт
Гость
Re: Автоматичесмкое обновление програмы
«
Ответ #7 :
Март 09, 2008, 02:39 »
а меня такой вариант не устроил. что это за "обновление" такое, когда выкачивается весь дистрибутив? такую роскошь могут позволить себе программки с размером дистриба до 3-5 метров...а если 30-50?
Записан
Вячеслав
Гость
Re: Автоматичесмкое обновление програмы
«
Ответ #8 :
Март 09, 2008, 13:33 »
И тож согласен
Для маленьких проектов - атомарный апдейт ..Для монстров с кучей плагинов и перекрестными связями между ними - пришлось в лоб (по аналогии с дебиановскими пакетами) рисовать нечто вроде метаинформации ( кто зависит от кого(и какой версии) )
Далее в отдельном потоке вытаскиваем , вежливо просим юзверя "а можно перегрузиться" и далее старые плагины - в bakup , новые в рабочий каталог и вперед
Записан
BRE
Гость
Re: Автоматичесмкое обновление програмы
«
Ответ #9 :
Март 10, 2008, 10:46 »
Цитата: pastor от Март 08, 2008, 00:00
Последний вариант имхо не подходит. Представим ситуацию, что плохой коннект или нет вобще коннекта. При этом юзер будет наблюдать каждый раз тормоз при запуске программы. А многие юзеры - это народ нервный
Лучше чтобы главная программа следила за обновлениями
Если все делать "в лоб", конечно не подходить.
Вопрос был как в винде перезаписать скачанный .exe. Простой вариант из другого процесса, который все скачает и когда все будет готово, подменит его и запустит. А к проблем коннекта можно добавить еще кучу, типа начали качать, а секретарша решила уйти на обед и выключила машину (делать поддержку докачки?) или программа работает месяцами без перезапуска (обновления есть, а их не кто не проверяет).
Продумывать реализацию нужно под конкретные цели и нужды.
Записан
-QT-
Гость
Re: Автоматичесмкое обновление програмы
«
Ответ #10 :
Март 13, 2008, 11:23 »
Для себя я принял концепцию:
Основной запускающий модуль и куча плугинов. Вся реализация в плагинах.
Загружающий модуль отслеживает в инете новый плагин, спрашивает пользователя "найдено обновление для ..." потом качает его если пользователь согласен установить обновление и просит перегрузить приложение.
Старые версии плагинов сохраняются - поэтому можно откатиться на предидущую версию плагина.
Правда еще не закончил с проверкой обновлений через POP3, а так все работает.
Вот еще один подход к обновлению.
Записан
DpoHro
Гость
Re: Автоматичесмкое обновление програмы
«
Ответ #11 :
Апрель 11, 2008, 22:26 »
Да мое решение для небольших приложений...
Записан
Страниц: [
1
]
Вверх
Печать
« предыдущая тема
следующая тема »
Перейти в:
Пожалуйста, выберите назначение:
-----------------------------
Qt
-----------------------------
=> Вопросы новичков
=> Уроки и статьи
=> Установка, сборка, отладка, тестирование
=> Общие вопросы
=> Пользовательский интерфейс (GUI)
=> Qt Quick
=> Model-View (MV)
=> Базы данных
=> Работа с сетью
=> Многопоточное программирование, процессы
=> Мультимедиа
=> 2D и 3D графика
=> OpenGL
=> Печать
=> Интернационализация, локализация
=> QSS
=> XML
=> Qt Script, QtWebKit
=> ActiveX
=> Qt Embedded
=> Дополнительные компоненты
=> Кладовая готовых решений
=> Вклад сообщества в Qt
=> Qt-инструментарий
-----------------------------
Программирование
-----------------------------
=> Общий
=> С/C++
=> Python
=> Алгоритмы
=> Базы данных
=> Разработка игр
-----------------------------
Компиляторы и платформы
-----------------------------
=> Linux
=> Windows
=> Mac OS X
=> Компиляторы
===> Visual C++
-----------------------------
Разное
-----------------------------
=> Новости
===> Новости Qt сообщества
===> Новости IT сферы
=> Говорилка
=> Юмор
=> Объявления
Загружается...