Mise à jour du programme automatique [Résolu]

cs_gomoz 135 Messages postés mardi 22 avril 2003Date d'inscription 23 décembre 2009 Dernière intervention - 1 juil. 2009 à 12:38 - Dernière réponse : killedman 17 Messages postés mardi 9 mars 2004Date d'inscription 23 novembre 2017 Dernière intervention
- 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 

3 réponses

Répondre au sujet
cs_gomoz 135 Messages postés mardi 22 avril 2003Date d'inscription 23 décembre 2009 Dernière intervention - 1 juil. 2009 à 13:56
+3
Utile
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 !
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de cs_gomoz
cs_Zeroc00l 370 Messages postés lundi 1 avril 2002Date d'inscription 11 février 2010 Dernière intervention - 19 août 2009 à 08:01
0
Utile
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
killedman 17 Messages postés mardi 9 mars 2004Date d'inscription 23 novembre 2017 Dernière intervention - 1 sept. 2009 à 21:03
0
Utile
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.