Russian Qt Forum
Сентябрь 30, 2024, 18:39 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Написание Updater'a для приложения  (Прочитано 3681 раз)
carhun
Гость
« : Июль 07, 2013, 11:18 »

Доброго времени суток.

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

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

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

На сколько этот путь хорош или может быть есть путь намного лучше?
Записан
Bepec
Гость
« Ответ #1 : Июль 07, 2013, 11:46 »

Очень простой способ есть - апдейтер сначала всё гонит в папку update, потом уже заменяет.

PS кто-то давным давно ратовал за вин апишный апдейтер в пару килобайт Подмигивающий
Записан
carhun
Гость
« Ответ #2 : Июль 07, 2013, 12:15 »

Очень простой способ есть - апдейтер сначала всё гонит в папку update, потом уже заменяет.

PS кто-то давным давно ратовал за вин апишный апдейтер в пару килобайт Подмигивающий

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

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

А есть пример updater'a с использованием винапи?
Записан
Bepec
Гость
« Ответ #3 : Июль 07, 2013, 12:17 »

Эм? Тупо сделайте bat файл аля "cope QtCore.dll ../QtCore.dll"
Записан
carhun
Гость
« Ответ #4 : Июль 07, 2013, 12:39 »

Эм? Тупо сделайте bat файл аля "cope QtCore.dll ../QtCore.dll"

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

Что я закрываю updater и стартую, например, через какой-то QProcess bat файлик, который по заменяет библиотеки. 
Записан
Bepec
Гость
« Ответ #5 : Июль 07, 2013, 12:39 »

Как вариант.
Записан
Alex Custov
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2063


Просмотр профиля
« Ответ #6 : Июль 07, 2013, 22:05 »

updater можно скомпилировать статически
Записан
VozaMFC
Гость
« Ответ #7 : Июль 09, 2013, 16:23 »

updater можно скомпилировать статически

Тоже вариант.
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.083 секунд. Запросов: 22.