Mise à jour du programme automatique [Résolu]

Messages postés
135
Date d'inscription
mardi 22 avril 2003
Dernière intervention
23 décembre 2009
- - Dernière réponse : killedman
Messages postés
17
Date d'inscription
mardi 9 mars 2004
Dernière intervention
23 novembre 2017
- 1 sept. 2009 à 21:03
Bonjour

Avant de déployer mon application, je veux implémenter une méthode pour mettre à jour l'application (et le fichier de configuration qui va avec).

J'ai réussi à me faire se connecter le soft à un serveur, là il donne mot de passe/identifiant et le serveur lui dit s'il est à jour.

Viens ensuite le problème épineux :
 - est-ce que doit télécharger l'application avec un nom à part "application_maj.exe" puis fermer mon application en lui fessant exécuter un bach qui supprime l'ancien et renomme le nouveau ?
 - est-ce qu'il existe autre chose qui me permet de faire le remplacement "en live" ?

C'est une application un peu confidentiel donc à minima, je souhaite utiliser un système d'identification (et c'est aussi pour fournir au client le fichier de conf qui va bien).
Je ne peux pas non plus utiliser clickonce car c'est une application qui tourne en tâche de fond et que l'utilisateur ne voit même pas.
Afficher la suite 

Votre réponse

3 réponses

Meilleure réponse
Messages postés
135
Date d'inscription
mardi 22 avril 2003
Dernière intervention
23 décembre 2009
3
Merci
A force de chercher, j'ai trouvé ça
http://forum.hardware.fr/hfr/Programmation/CNET-managed/process-fermeture-resolu-sujet_118842_1.htm#t1806043

La solution proposée est de renommé l'exécutable en cours d'exécution, de créer le ficher mis à jour avec le nom normal puis au redémarrage de l'application mis à jour (ou lors d'une nouvelle mise à jour), supprimer l'ancien programme.

Tout simple : j'aime :-)
Reste à gérer quand même les DLL et le tralala mais dans l'ensemble ça me semble comme je veux.

N'hésitez pas si vous avez des remarques !

Merci cs_gomoz 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources a aidé 99 internautes ce mois-ci

Commenter la réponse de cs_gomoz
Messages postés
370
Date d'inscription
lundi 1 avril 2002
Dernière intervention
11 février 2010
0
Merci
Pile poil ce que je cherchais, merci.

Pour résumer ce qui se dit sur l'autre page :

Supprimer un éxécutable en train d'être éxécuté sous windows est impossible.
Mais, il est possible de le renommer lorsqu'il est en cours d'éxécution.

Le principe est simple :

Importer la nouvelle version de l'executable sous un nom "x".
Renommer l'executable actuel en rajoutant par exemple "_old" a la fin du nom.
renommer x par le nom normal de l'executable.
Utiliser l'instruction Application.Restart().
Lors du demarage de votre application supprimer tous les fichiers se terminant par "_old".

Et le tour est joué.

Pour les dlls il faut faire un peu plus mumuse mais le principe semble être le même.


-={[ Zeroc00l ]}=-
Commenter la réponse de cs_Zeroc00l
Messages postés
17
Date d'inscription
mardi 9 mars 2004
Dernière intervention
23 novembre 2017
0
Merci
Hum ...

Je cherche le moyen de faire un système de mise à jours, style windows.

Mais l'astuce semble être une bonne piste.

Me reste à voir pour l'implémentation des mises à jour de la base de donnée.

Quoique ... suffit d'une classe et pas mal de requête SQL ;)


Jérémie ...
Commenter la réponse de killedman

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.