Actuellement je dispose d’une combinaison de plusieurs systèmes décrits dans le tutoriel :
Le launcher se connecte au serveur et télécharge toutes les données sur les fichiers à télécharger pour la mise à jour (très rapide car je ne télécharge pas le fichier, je le lis en live).
Le launcher compare sa version et celle en ligne. Si une mise à jour est disponible, on passe à l’étape 3, sinon on vérifie si tous les fichiers sont présents, si oui, on arrête tout; si non, on passe à l’étape 3.
Le launcher télécharge tous les fichiers présents sur la liste que je viens de citer et les place dans un dossier “updates”.
Le launcher déplace ensuite tous les fichiers pour les mettre à jour.
Le launcher exécute un petit programme puis se ferme. Le petit programme remplace l’exécutable lui-même et va ensuite exécuter le launcher. Fin de la mise à jour.
Du point de vue de l’utilisateur, tous les téléchargements se font en arrière plan (il peut donc faire ce qu’il veut pendant la mise à jour, le launcher ne se “fige” pas) et ensuite le launcher reboot.