C# Как обновлять игру через лаунчер по отдельным файлам?
Я делаю лаунчер для игры на C# WPF. Смотря на обновление игр в Steam, лаунчер Crossout, World of Tanks, Samp и прочие лаунчеры таких больших игр. Я видел, что там обновление происходит не устанавливая каждый раз игру заново, а если удалил какой-то файл, то лаунчер это поймёт и восстановит.
Игра залита в репозиторий GitHub. Я не понял, как делать нечто вроде клонирования и в итоге получил ссылку на скачивание всего репозитория как архив и из кода разархивирую.
Встала проблема с обновлением. Я могу сделать отдельный репозиторий для патчей и туда просто закидывать изменённые файлы, а дальше распаковывать в игру, но мне кажется это провальным. Если я удалю файл, то без понятия как сделать так, чтобы это понял лаунчер.
Подскажите способы реализовать то что нужно, либо куда копать.
Там механизм в два прохода:
1) скачать архив с изменёнными файлами от версии F до версии J
2) проверить, что файлы актуальной версии, если нет то скачать актуальный.