kagenata
В целом, как написать код для проверки на наличие новых версий я представляю, правда, может, этот способ слишком примитивен: вшивать в само приложение его версию и при запуске приложения (а оно у меня в исполняемом exe файле) делается запрос к облаку к файлу versions.json, далее версии сравниваются.
Версии сравнились, дальше что происходит?
1. Проверил наличие обновлений.
2. Скачал обновление.
3. Установил обновление.
Чтобы установить обновление, его не нужно скачивать перед этим. Оно может уже в готовом виде лежать возле программы.
kagenata
Должно ли вообще приложение (будущее) состоять из одного самого главного файла со всем скриптом, который позже компилируется и преобразуется в исполняемый файл?
У тебя должен быть установщик приложения, который устанавливает, программу в операционную систему и всё настраивает в ней для её использования. Один там файл или много, бинарные они или в виде скриптов, зависит только от того, как это удобнее разработчику делать. Например, ты можешь открыть папку с любой программой обычной или игрой и посмотреть, один там файл или много там файлов, бинарные там файлы или скрипты, а потом задаться вопросом: “А как все эти файлы там появились, если я только один файл скачал и запустил когда-то?”
В любом случае от этого никак не зависит, возможно ли ставить обновления, не скачивая всё целиком каждый раз.
kagenata
Ели я изменил код, добавил новые функции и пр., как правильно создать обновление? В каком виде оно должно быть и т.д.?
У тебя должна быть дельта, которую ты накладываешь на то, что уже есть. Если это бинарные файлы, то они будут пропатчены бинарно. Если это скрипты, то они будут пропатчены текстово. И это всё может быть пропатчено одновременно, потому что программа не обязана быть только бинарной или только скриптовой. В ней могут быть и бинарники, и скрипты.
kagenata
Как реализовать получение и установку самого обновления после проверки на новую версию?
Надо это локально написать. А потом та часть, которая проверяет, соединяется с той частью, которая скачивает, а потом часть, которая скачивает, соединяется с частью, которая устанавливает. Это три разных независимых части системы обновления. Их можно отдельно делать, а потом соединять друг с другом через интерфейсы. В данном случае - через интерфейс командной строки.