cs_gomoz
Messages postés134Date d'inscriptionmardi 22 avril 2003StatutMembreDernière intervention23 décembre 2009
-
1 juil. 2009 à 12:38
killedman
Messages postés17Date d'inscriptionmardi 9 mars 2004StatutMembreDernière intervention23 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.
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.
cs_Zeroc00l
Messages postés367Date d'inscriptionlundi 1 avril 2002StatutMembreDernière intervention11 février 2010 19 août 2009 à 08:01
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.