IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C# Discussion :

Comment réaliser une application qui se met à jour elle-même ?


Sujet :

C#

  1. #1
    En attente de confirmation mail
    Inscrit en
    Janvier 2007
    Messages
    70
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 70
    Points : 60
    Points
    60
    Par défaut Comment réaliser une application qui se met à jour elle-même ?
    Bonjour à tous,

    J'aimerais que mon application puisse se mettre à jour elle-même, comme le font un grand nombre d'applications connues comme FireFox, FileZilla, etc.

    J'aimerais connaître la façon de faire. Comment est-ce que l'application doit vérifier la présence d'une nouvelle version (Web Service ?). Comment applique-t-elle ses numéros de versions ? Et comment remplace-t-elle l'exécutable quand l'application est en fonction ?

    Si vous avez déjà eu à faire cela, ou si vous connaissez de bons articles sur le sujet, j'aimerais que vous m'en fassiez part.

    Merci d'avance,

  2. #2
    Membre confirmé
    Inscrit en
    Juin 2007
    Messages
    459
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 459
    Points : 553
    Points
    553
    Par défaut
    Tu peux jeter un coup d'oeil à l'Updater Application Block.

  3. #3
    En attente de confirmation mail
    Inscrit en
    Janvier 2007
    Messages
    70
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 70
    Points : 60
    Points
    60
    Par défaut
    Merci, je vais y jeter un oeil.

    Sinon, pour le coder soi-même, y-a-t-il une façon simple sans avoir à implémenter un paquet de trucs ?

  4. #4
    Expert confirmé
    Avatar de ced600
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Août 2006
    Messages
    3 364
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Août 2006
    Messages : 3 364
    Points : 4 061
    Points
    4 061
    Par défaut
    Il y a plein de façon de faire cela. Tout dépends de ce que tu veux faire.
    Tu auras dans tous les cas besoin d'un serveur (ou être en P2P).
    Moi perso si je devais mettre cela en place, je ne m'embetterais pas :
    1. Un serveur contenant un web service pour informer des mise à jours
    2. A chaque execution, si la dernière execution date de plus d'1 jour, je vérifie les mises à jours en me connectant au web service.
    3. Si mise à jour je la télécharge (un fichier zip)
    4. je décompresse le fichier
    5. je lance l'updater
    6. et je termine l'application
    7. l'updater attend la fin de l'application à updater
    8. il l'update une fois close (remplacement de fichier, création de clé, de fichier, .....)
    9. il relance l'application et se kill.
    Pourquoi faire compliqué lorsque l'on peut faire encore plus compliqué.

  5. #5
    Membre régulier Avatar de TheCaribouX
    Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mars 2008
    Messages
    255
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mars 2008
    Messages : 255
    Points : 122
    Points
    122
    Par défaut
    Je suis de loin pas un expert en la matière, mais est-ce que CLickOnce ne pourrait pas être une solution à ce genre de problème?

  6. #6
    Expert confirmé
    Avatar de ced600
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Août 2006
    Messages
    3 364
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Août 2006
    Messages : 3 364
    Points : 4 061
    Points
    4 061
    Par défaut
    Je croyais que ClickOnce ne servait qu'à du déploiment d'une application à partir d'une page Web ?
    Pourquoi faire compliqué lorsque l'on peut faire encore plus compliqué.

  7. #7
    Membre régulier Avatar de TheCaribouX
    Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mars 2008
    Messages
    255
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mars 2008
    Messages : 255
    Points : 122
    Points
    122
    Par défaut
    C'est le cas, mais à chaque fois que l'on lance l'application de la cache, elle va d'elle meme verifier si une nouvele version est disponible online (si le réseau est disponible)

  8. #8
    Expert confirmé
    Avatar de ced600
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Août 2006
    Messages
    3 364
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Août 2006
    Messages : 3 364
    Points : 4 061
    Points
    4 061
    Par défaut
    Ok je ne savais pas, c'est plutot pas mal en effet
    Pourquoi faire compliqué lorsque l'on peut faire encore plus compliqué.

  9. #9
    En attente de confirmation mail
    Inscrit en
    Janvier 2007
    Messages
    70
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 70
    Points : 60
    Points
    60
    Par défaut
    Est-ce que tu pourrais m'en dire plus sur l'updater ? Comment peut-il attendre la fin de l'exécution du programme ?

  10. #10
    Expert confirmé
    Avatar de ced600
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Août 2006
    Messages
    3 364
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Août 2006
    Messages : 3 364
    Points : 4 061
    Points
    4 061
    Par défaut
    en détectant la présence du processus correspondant à ton application dans la liste de processus lancés sur ta machine.
    Pourquoi faire compliqué lorsque l'on peut faire encore plus compliqué.

  11. #11
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Points : 39 749
    Points
    39 749
    Par défaut
    Citation Envoyé par cobolfingaz Voir le message
    Est-ce que tu pourrais m'en dire plus sur l'updater ? Comment peut-il attendre la fin de l'exécution du programme ?
    Va voir la méthode Process.WaitForExit

  12. #12
    Expert confirmé
    Avatar de ced600
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Août 2006
    Messages
    3 364
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Août 2006
    Messages : 3 364
    Points : 4 061
    Points
    4 061
    Par défaut
    S'il suis ce que je lui ai dit, l'updater est lancé par le programme dont il doit attendre la fin.
    A moins que l'on puisse faire une waitforexiste sur un process récup dans la liste des process ?
    Pourquoi faire compliqué lorsque l'on peut faire encore plus compliqué.

  13. #13
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Points : 39 749
    Points
    39 749
    Par défaut
    Citation Envoyé par ced600 Voir le message
    S'il suis ce que je lui ai dit, l'updater est lancé par le programme dont il doit attendre la fin.
    A moins que l'on puisse faire une waitforexiste sur un process récup dans la liste des process ?
    On peut tout à fait... par exemple, tu lances l'updater en passant en paramètre le PID du process en cours, l'updater récupère l'objet Process en fonction du PID, et attend la fin de ce process

  14. #14
    Expert confirmé
    Avatar de ced600
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Août 2006
    Messages
    3 364
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Août 2006
    Messages : 3 364
    Points : 4 061
    Points
    4 061
    Par défaut
    En effet cela me parait être mieux ainsi.
    Pourquoi faire compliqué lorsque l'on peut faire encore plus compliqué.

Discussions similaires

  1. Réponses: 0
    Dernier message: 20/05/2008, 17h09
  2. Réponses: 9
    Dernier message: 11/05/2008, 00h22
  3. Réponses: 32
    Dernier message: 23/10/2007, 19h33
  4. Comment lancer une application qui a été développée sous Unix avec le navigateur IE
    Par diamonds dans le forum Applications et environnements graphiques
    Réponses: 2
    Dernier message: 26/09/2006, 14h43

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo