LINUX.ORG.RU

Автообновление приложения


0

1

Есть приложение (C++/Qt) для него необходимо сделать возможность автоматического обновления (сразу скажу, что это нужно под win реализовать). Как вообще обычно подобное реализуется? У меня две идеи: делается внешнее приложение, launcher, который запускается, проверяет наличие новой версии на сервере, если таковое имеется, то оно скачивается и допустим заменяет все старые файлы, после этого запускает само приложение; или эта возможность есть в приложении, допустим какой-то пункт меню «обновить», мы его запускаем, начинается проверка, скачивание, но тут у меня возникает вопрос, как может исполняемый файл подменить сам себя? Может есть еще какие-то варианты или примеры?


В винде исполняемый файл подменить нельзя. Как вариант при обнаружнии обновлний предлагать обновиться, если да - запускать обновлятор как отдельный процесс, а основной грохать (не забыв предупредить об этом пользователя и дав ему возможность сохраниться).

Про лаунчер все верно написал.

anonymous
()

как может исполняемый файл подменить сам себя?

Перезагрузить компьютер? [Да][Нет] :)

anTaRes ★★★★
()

плюсану за лаунчер, всё как ты описал. (можно запускать без видимых плюшек, если есть обновления - показываем процесс обновления, если нету - ничего не делаем и запускаем сразу программу).

Как исполняемый файл может обновить себя... Например так: исполняемый файл скачивает новый исполняемый файл с другим именем (допустим дописываем номер версии), запускаем новый файл - и он удаляет старый (можно паралельно еще ярлычок переписать), но имхо так делать не стоит.

Megamozg
()

Проверять при запуске и периодически, выходить программу и запускать инсталятор в тихом режиме не то?

bhfq ★★★★★
()

делается внешнее приложение, launcher

именно так.

и еще мне нравится хранить это дело в svn. берешь какой-нить libsvn и говоришь ему, на клиенте, update. волшебным образом все получается, без велосипедов.

Rastafarra ★★★★
()

сразу скажу, что это нужно под win реализовать

Не венфак!

mopsene ★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.