Russian Qt Forum

Qt => Общие вопросы => Тема начата: carhun от Июль 07, 2013, 11:18



Название: Написание Updater'a для приложения
Отправлено: carhun от Июль 07, 2013, 11:18
Доброго времени суток.

Есть приложение, написанное с использованием Qt.
Так же есть Updater, которое так же использует Qt.

Проблема заключается в следующем:
Т.к. для работы и приложения, и updater'a необходимы, например, такие библиотеки, как QtGui.dll QtCore.dll, и допустим приходят обновления на эти библиотеки, то я их получается не могу заменить, т.к. они используются updater'ом.

Единственно, что пришло в голову так это написать скрипт, который будет запускаться, если updater получил обновления для QtGui.dll, QtCore.dll. Т.е. если updater получает для указанных библиотек обновления, то он закачивает их, далее updater завершает свою работу и стартует скрипт, который подменит эти библиотеки.
Да, можно переписать все на какой-то С#, но тоже как-то это не сильно хороший выход...

На сколько этот путь хорош или может быть есть путь намного лучше?


Название: Re: Написание Updater'a для приложения
Отправлено: Bepec от Июль 07, 2013, 11:46
Очень простой способ есть - апдейтер сначала всё гонит в папку update, потом уже заменяет.

PS кто-то давным давно ратовал за вин апишный апдейтер в пару килобайт ;)


Название: Re: Написание Updater'a для приложения
Отправлено: carhun от Июль 07, 2013, 12:15
Очень простой способ есть - апдейтер сначала всё гонит в папку update, потом уже заменяет.

PS кто-то давным давно ратовал за вин апишный апдейтер в пару килобайт ;)

В целом он сейчас так и делает, только он создает не папку update, а добавляет в конце .tmp... Только проблема в том, что updater использует QtGui.dll, QtCore.dll и на сколько я понимаю оно не даст ничего с ними сделать, пока я не закончу процесс updater...

Эх, я не силен в винапи, будет намного дольше все переписывать... можно конечно вообще хоть сервис написать, который будет проверять обновления, но это по сути будет тоже самое, что не использовать Qt для updater'a.

А есть пример updater'a с использованием винапи?


Название: Re: Написание Updater'a для приложения
Отправлено: Bepec от Июль 07, 2013, 12:17
Эм? Тупо сделайте bat файл аля "cope QtCore.dll ../QtCore.dll"


Название: Re: Написание Updater'a для приложения
Отправлено: carhun от Июль 07, 2013, 12:39
Эм? Тупо сделайте bat файл аля "cope QtCore.dll ../QtCore.dll"

Ну, я собственно и спрашивал это хорошо так сделать?

Что я закрываю updater и стартую, например, через какой-то QProcess bat файлик, который по заменяет библиотеки. 


Название: Re: Написание Updater'a для приложения
Отправлено: Bepec от Июль 07, 2013, 12:39
Как вариант.


Название: Re: Написание Updater'a для приложения
Отправлено: Alex Custov от Июль 07, 2013, 22:05
updater можно скомпилировать статически


Название: Re: Написание Updater'a для приложения
Отправлено: VozaMFC от Июль 09, 2013, 16:23
updater можно скомпилировать статически

Тоже вариант.