Политика конфиденциальностиКонтактыО сайтеОтзывыGitHubDonate
© EVILEG 2015-2018
Рекомендует хостинг
TIMEWEB
1 июня 2018 г. 18:37

Как правильно реализовать обновление

Хочу сделать обновление, но незнаю как правильно все реализовать.

1. Как делать проверку на выход новой версии? Думаю json файл получать
2. Где хранить файлы обновления?
3. Обновлять все файлы или выборочно?
4. Делать резервные копии файлов, в случае проблем, для отката?
Вопросов много, может не все указал.
7

1. Да, здесь можно использовать JSON. Вот в этой статье есть пример с JSON файлом

А вот сам процесс обновления можно реализовать с помощью QtIFW, там в принципе есть необходимый функционал для такого. Здесь есть пример сборки как для онлайн, так и для оффлайн версии . Если менять пакет для онлайн версии, то инсталлятор сам уже покажет, что есть нового при запуске и пользователь может выбрать, в общем будет похоже, как в maintenance tool.

Также на форуме поднимался ряд вопросов, касающихся QtIFW

2. Файлы обновления нужно хранить на сервере. можете для этого использовать даже самый обычный хостинг для PHP сайта, даже бесплатный.

3. QtIFW в принципе ответит на этот вопрос.

4. Теоретически стоит, но пока я бы на вашем месте не думал. но сделал бы механизм по сохранению пользовательских save файлов, которые не пострадали бы при обновлении, а саму программу всегда можно переустановить. Если ещё не делали инсталлятор, то тогда убъёте сразу двух зайцев с QtIFW
0

Собрал инсталлятор, все нормально, но после установки, приложение не запускается.  Требует дополнительные dll файлы, например QtScript.dll и т.д., почему QtIFW собрал не все dll?

0

И еще вопрос, я объединил проекты в один с под проектами, как мне теперь собирать инсталляторы  для каждого отдельно. В pro вставлять код # Выбираем директорию сборки исполняемого файла

# в зависимости от режима сборки проекта
CONFIG(debug, debug|release) {
    DESTDIR = $$OUT_PWD/../../prog1Debug
} else {
    DESTDIR = $$OUT_PWD/../../prog1Release
}
# разделяем по директориям все выходные файлы проекта
MOC_DIR = ../common/build/moc
RCC_DIR = ../common/build/rcc
UI_DIR = ../common/build/ui
unix:OBJECTS_DIR = ../common/build/o/unix
win32:OBJECTS_DIR = ../common/build/o/win32
macx:OBJECTS_DIR = ../common/build/o/mac

# в зависимости от режима сборки проекта
# запускаем win deploy приложения в целевой директории, то есть собираем все dll
CONFIG(debug, debug|release) {
    QMAKE_POST_LINK = $$(QTDIR)/bin/windeployqt $$OUT_PWD/../../prog1Debug
} else {
    QMAKE_POST_LINK = $$(QTDIR)/bin/windeployqt $$OUT_PWD/../../prog1Release
}
1

Со сборкой вроде все норм, не правильно разделил по директориям все выходные файлы проекта

1
  • Ответ был помечен как решение.
  • 6 июня 2018 г. 17:29

Как поменять путь, в зависимости от проекта?

    PWD_WIN = $$OUT_PWD\..\..\Prog1Release
или
    PWD_WIN = $$OUT_PWD\..\..\Prog2Release
1

В принципе я разобрался, сделал проект с под проектами и внутри еще проект с под проектами.  Все работает как хотелось.


Только вопрос появился, пере сборка всегда будет всех под проектов?  То есть при релизе он делает инстолляторы на все проекты.
0

Я настраивал, чтобы инсталляторы были либо для дебага, либо для релиза.

По сути, как разрулите в QMake, так оно и будет работать.
0

Ответы

Только авторизованные пользователи могут отвечать на форуме.
Пожалуйста, авторизуйтесь или зарегистрируйтесь
ДД
13 декабря 2018 г. 16:24
Дмитрий Дубовик

C++ - Тест 005. Структуры и Классы

  • Результат:66баллов,
  • Очки рейтинга-1
13 декабря 2018 г. 16:04
Metelev

Qt - Тест 001. Сигналы и слоты

  • Результат:47баллов,
  • Очки рейтинга-6
YC
12 декабря 2018 г. 18:49
Yaroslav Chernetskyi

Qt - Тест 001. Сигналы и слоты

  • Результат:31баллов,
  • Очки рейтинга-10
Последние комментарии
V
15 декабря 2018 г. 2:06
Vlad15007

Спасибо большое!Очень помогли!
11 декабря 2018 г. 21:01
Евгений Легоцкой

Не знаю, какой-там конкретно эффект и если честно не хочется fl studio ради того, чтобы посмотреть устанавливать, но из того, что увидел в интернете. Предполагаю, что то, что вы хотите с...
V
11 декабря 2018 г. 19:25
Vlad15007

Подскажите пожалуйста ( я новичок совсем)Можно ли организовать спрайт без этого окошка (как в fl studio fruity dance)?
11 декабря 2018 г. 15:06
Евгений Легоцкой

Что интересно, если написать так from <application_name>.<module_name> import <filename> ,то PyCharm сносит крышу, если разрабатываешь в рамках проекта приложение, ко...
11 декабря 2018 г. 14:52
Илья Чичак

Тут мне тоже есть что сказать=) Сами разрабы советуют импортировать следующим образом: from <application_name> import <module_name> Стоит избегать from . import &l...;
Сейчас обсуждают на форуме
ИМ
18 декабря 2018 г. 15:29
Игорь Максимов

Доброго времени суток. Имеется модель для видео-контента (Movie), а конкретно привязана сейчас к одной модели(Compilation). Появилась необходимость добавить еще одну модель (Category) и связа...
R
18 декабря 2018 г. 12:25
RED_Spider

именно так, проблема в кодировке, а именно в отсутствии шрифтов на сервере, для меня вопрос решился в CentOS 7yum install curl cabextract xorg-x11-font-utils fontconfig всем спасибо за ...
U
18 декабря 2018 г. 10:39
Unreal_man

А вот этот коннект здесь и вовсе не нужен connect(ui->ok3, &QPushButton::clicked, this, &Widget::addToText); А как же без него? ============================== ...
m
17 декабря 2018 г. 19:03
melnik10

Спасибо, попробую!
R
16 декабря 2018 г. 14:41
RED_Spider

перевірено все працює http://doc.qt.io/qt-5/appicon.html Setting the Application Icon on Windows First, create an ICO format bitmap file that contains the icon image. This ca...
Присоединяйтесь к нам в социальных сетях

Для зарегистрированных пользователей на сайте присутствует минимальное количество рекламы