Юрий
Юрий01 червня 2018 р. 14:37

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

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

1. Как делать проверку на выход новой версии? Думаю json файл получать
2. Где хранить файлы обновления?
3. Обновлять все файлы или выборочно?
4. Делать резервные копии файлов, в случае проблем, для отката?
Вопросов много, может не все указал.
Рекомендуємо хостинг TIMEWEB
Рекомендуємо хостинг TIMEWEB
Стабільний хостинг, на якому розміщується соціальна мережа EVILEG. Для проектів на Django радимо VDS хостинг.

Вам це подобається? Поділіться в соціальних мережах!

7
Evgenii Legotckoi
  • 01 червня 2018 р. 15:01

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

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

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

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

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

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

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

      Юрий
      • 06 червня 2018 р. 13:02

      И еще вопрос, я объединил проекты в один с под проектами, как мне теперь собирать инсталляторы  для каждого отдельно. В 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
      }
        Юрий
        • 06 червня 2018 р. 13:18

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

          Юрий
          • 06 червня 2018 р. 13:29
          • (відредаговано)
          • Відповідь була позначена як рішення.

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

              PWD_WIN = $$OUT_PWD\..\..\Prog1Release
          или
              PWD_WIN = $$OUT_PWD\..\..\Prog2Release
            Юрий
            • 09 червня 2018 р. 15:26

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


            Только вопрос появился, пере сборка всегда будет всех под проектов?  То есть при релизе он делает инстолляторы на все проекты.
              Evgenii Legotckoi
              • 12 червня 2018 р. 02:40

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

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

                Коментарі

                Only authorized users can post comments.
                Please, Log in or Sign up
                sf

                C++ - Тест 004. Указатели, Массивы и Циклы

                • Результат:90бали,
                • Рейтинг балів8
                МВ

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

                • Результат:68бали,
                • Рейтинг балів-1
                ЛС

                C++ - Тест 001. Первая программа и типы данных

                • Результат:53бали,
                • Рейтинг балів-4
                Останні коментарі
                A
                ALO1ZE19 жовтня 2024 р. 08:19
                Читалка файлів fb3 на Qt Creator Подскажите как это запустить? Я не шарю в программировании и кодинге. Скачал и установаил Qt, но куча ошибок выдается и не запустить. А очень надо fb3 переконвертировать в html
                ИМ
                Игорь Максимов05 жовтня 2024 р. 07:51
                Django - Урок 064. Як написати розширення для Python Markdown Приветствую Евгений! У меня вопрос. Можно ли вставлять свои классы в разметку редактора markdown? Допустим имея стандартную разметку: <ul> <li></li> <li></l…
                d
                dblas505 липня 2024 р. 11:02
                QML - Урок 016. База даних SQLite та робота з нею в QML Qt Здравствуйте, возникает такая проблема (я новичок): ApplicationWindow неизвестный элемент. (М300) для TextField и Button аналогично. Могу предположить, что из-за более новой верси…
                k
                kmssr08 лютого 2024 р. 18:43
                Qt Linux - Урок 001. Автозапуск програми Qt під Linux как сделать автозапуск для флэтпака, который не даёт создавать файлы в ~/.config - вот это вопрос ))
                АК
                Анатолий Кононенко05 лютого 2024 р. 01:50
                Qt WinAPI - Урок 007. Робота з ICMP Ping в Qt Без строки #include <QRegularExpressionValidator> в заголовочном файле не работает валидатор.
                Тепер обговоріть на форумі
                J
                JacobFib17 жовтня 2024 р. 03:27
                добавить qlineseries в функции Пользователь может получить любые разъяснения по интересующим вопросам, касающимся обработки его персональных данных, обратившись к Оператору с помощью электронной почты https://topdecorpro.ru…
                ИМ
                Игорь Максимов03 жовтня 2024 р. 04:05
                Реализация навигации по разделам Спасибо Евгений!
                JW
                Jhon Wick01 жовтня 2024 р. 15:52
                Indian Food Restaurant In Columbus OH| Layla’s Kitchen Indian Restaurant If you're looking for a truly authentic https://www.laylaskitchenrestaurantohio.com/ , Layla’s Kitchen Indian Restaurant is your go-to destination. Located at 6152 Cleveland Ave, Colu…
                КГ
                Кирилл Гусарев27 вересня 2024 р. 09:09
                Не запускается программа на Qt: точка входа в процедуру не найдена в библиотеке DLL Написал программу на C++ Qt в Qt Creator, сбилдил Release с помощью MinGW 64-bit, бинарнику напихал dll-ки с помощью windeployqt.exe. При попытке запуска моей сбилженной программы выдаёт три оши…
                F
                Fynjy22 липня 2024 р. 04:15
                при создании qml проекта Kits есть но недоступны для выбора Поставил Qt Creator 11.0.2. Qt 6.4.3 При создании проекта Qml не могу выбрать Kits, они все недоступны, хотя настроены и при создании обычного Qt Widget приложения их можно выбрать. В чем может …

                Слідкуйте за нами в соціальних мережах