Юрий
Юрий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
                AD

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

                • Результат:50бали,
                • Рейтинг балів-4
                m
                • molni99
                • 26 жовтня 2024 р. 11:37

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

                • Результат:80бали,
                • Рейтинг балів4
                m
                • molni99
                • 26 жовтня 2024 р. 11:29

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

                • Результат:20бали,
                • Рейтинг балів-10
                Останні коментарі
                ИМ
                Игорь Максимов22 листопада 2024 р. 22:51
                Django - Підручник 017. Налаштуйте сторінку входу до Django Добрый вечер Евгений! Я сделал себе авторизацию аналогичную вашей, все работает, кроме возврата к предидущей странице. Редеректит всегда на главную, хотя в логах сервера вижу запросы на правильн…
                Evgenii Legotckoi
                Evgenii Legotckoi01 листопада 2024 р. 00:37
                Django - Урок 064. Як написати розширення для Python Markdown Добрый день. Да, можно. Либо через такие же плагины, либо с постобработкой через python библиотеку Beautiful Soup
                A
                ALO1ZE19 жовтня 2024 р. 18:19
                Читалка файлів fb3 на Qt Creator Подскажите как это запустить? Я не шарю в программировании и кодинге. Скачал и установаил Qt, но куча ошибок выдается и не запустить. А очень надо fb3 переконвертировать в html
                ИМ
                Игорь Максимов05 жовтня 2024 р. 17:51
                Django - Урок 064. Як написати розширення для Python Markdown Приветствую Евгений! У меня вопрос. Можно ли вставлять свои классы в разметку редактора markdown? Допустим имея стандартную разметку: <ul> <li></li> <li></l…
                d
                dblas505 липня 2024 р. 21:02
                QML - Урок 016. База даних SQLite та робота з нею в QML Qt Здравствуйте, возникает такая проблема (я новичок): ApplicationWindow неизвестный элемент. (М300) для TextField и Button аналогично. Могу предположить, что из-за более новой верси…
                Тепер обговоріть на форумі
                Evgenii Legotckoi
                Evgenii Legotckoi25 червня 2024 р. 01:11
                добавить qlineseries в функции Я тут. Работы оень много. Отправил его в бан.
                t
                tonypeachey115 листопада 2024 р. 17:04
                google domain [url=https://google.com/]domain[/url] domain [http://www.example.com link title]
                NSProject
                NSProject04 червня 2022 р. 13:49
                Всё ещё разбираюсь с кешем. В следствии прочтения данной статьи. Я принял для себя решение сделать кеширование свойств менеджера модели LikeDislike. И так как установка evileg_core для меня не была возможна, ибо он писался…
                9
                9Anonim25 жовтня 2024 р. 19:10
                Машина тьюринга // Начальное состояние 0 0, ,<,1 // Переход в состояние 1 при пустом символе 0,0,>,0 // Остаемся в состоянии 0, двигаясь вправо при встрече 0 0,1,>…

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