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

Windows Discussion :

Numéro de version lors du déploiement d'une application


Sujet :

Windows

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    78
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 78
    Points : 41
    Points
    41
    Par défaut Numéro de version lors du déploiement d'une application
    Bonsoir à tous,

    je travail actuellement sur un module de mise à jour d'une application C# .Net. Lorsque les utilisateurs lancent l'application, si une version plus récente existe sur le serveur, alors il sera proposé une mise à jour.

    Nous reposons sur le Windows Installer pour tout ces besoins. Basiquement, la mise à jour se fait à l'aide de msiexec, qui nous permet de désinstaller l'ancienne version et réinstaller la nouvelle.

    Pour savoir si une nouvelle version est disponible, pour l'instant l'application compare deux fichiers XML de "changelog" et regarde si celui sur le serveur comporte une version plus avancée...
    Nous aimerions modifier ce comportement afin de pouvoir compter sur les numéros de version des assemblies et du .exe final, et intégrer le tout dans un processus de release scripté.

    Je suppose que certains d'entre vous ont déja été confrontés à ce genre de problèmes.
    Comment vous vous en êtes sortis (ou pas) ?
    Quelles sont les pistes que vous avez exploré ?
    Comment font les applications commerciales pour se mettre à jour facilement ?

    Merci d'avance pour vos retours d'expérience.

  2. #2
    Membre averti
    Profil pro
    Étudiant
    Inscrit en
    Juin 2005
    Messages
    288
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2005
    Messages : 288
    Points : 375
    Points
    375
    Par défaut
    Regarde du coté de ClickOnce, il permet de se baser sur les numéros de version et met à jour automatiquement ton programme si une version plus récente existe sur internet/FTP/Partage Réseau:

    Déploiement ClickOnce

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    78
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 78
    Points : 41
    Points
    41
    Par défaut
    Merci pour cette réponse.

    Je suis en train de lire les différentes ressources associées à ClickOnce sur la msdn. Cela à l'air très intéressant.

  4. #4
    Membre averti
    Profil pro
    Étudiant
    Inscrit en
    Juin 2005
    Messages
    288
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2005
    Messages : 288
    Points : 375
    Points
    375
    Par défaut
    ca l'est, et c'est vraiment très pratique pour déployer rapidement et efficacement une application. Plus besoin de ce soucié des mise à jour des logiciels, ClickOnce s'en occupe tous seul comme un grand.Couplé à IIS, un vrai bonheur

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    78
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 78
    Points : 41
    Points
    41
    Par défaut
    Après avoir bidouillé un peu avec ClickOnce, je me retrouve avec les 2 problèmes suivants.

    1- notre application comporte plusieurs assemblies; certaines sont en C#, d'autres en CLR. Les assemblies CLR ont des "dépendences" sur des .dll en c++ natif. Comment s'assurer que ces dll se retrouveront bien dans le déploiment?

    2- comment faire pour que le fait d'augmenter de version de publish mette à jour la version de chacune de nos assemblies. C'est un concept très étrange que de faire une publication en version 2.4.x.x pendant que nos assemblies et notre executable restent en version 1.0.0.0. Y a t-il un moyen?

    Notre première piste qui résoudrait le tout, serait de s'occuper de l'étape de publication "à la main". Un script se chargerait de parser tout les fichiers AssemblyInfos.cs & co afin de modifier le numéro de version. Lancerait un build de la solution, puis se chargerait de copier toutes les dépendances et tout les fichiers de data dans le bon repertoire. La dernière étape consisterait à lancer la génération des différents XML nécéssaires à un déploiement ClickOnce.

    Y a t-il un moyen plus smart de faire tout ce processus?

  6. #6
    Membre averti
    Profil pro
    Étudiant
    Inscrit en
    Juin 2005
    Messages
    288
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2005
    Messages : 288
    Points : 375
    Points
    375
    Par défaut
    Citation Envoyé par samball
    1- notre application comporte plusieurs assemblies; certaines sont en C#, d'autres en CLR. Les assemblies CLR ont des "dépendences" sur des .dll en c++ natif. Comment s'assurer que ces dll se retrouveront bien dans le déploiment?
    Je n'ai jamais testé avec des assemblies CLR, donc je ne peux pas te dire, il faut tester si lors du deploiement les dll sont copiés avec ou non. Si les dépendances sont clair (au niveau des références) je crois que VS les copies.

    Citation Envoyé par samball
    2- comment faire pour que le fait d'augmenter de version de publish mette à jour la version de chacune de nos assemblies. C'est un concept très étrange que de faire une publication en version 2.4.x.x pendant que nos assemblies et notre executable restent en version 1.0.0.0. Y a t-il un moyen?
    C'est un problème qui en effet est assez chiant avec ClickOnce, la numérotation de la publication ne corespond pas à la numérotation des assemblies, obligé de se les tapper à la main.

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    78
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 78
    Points : 41
    Points
    41
    Par défaut
    On a donc pris la piste du script de publication qui permettra aussi de se lancer à partir d'un serveur de build.

    Par contre je rencontre énormément de problèmes dans la génération du manifest de l'application et du manifest de déploiement.

    J'ai trouvé deux trois tutos sur le net expliquant comment les générer à la main à partir de la command line (via Mage.exe), mais je n'arrive pas à reproduire les différentes étapes que fait le bouton "Publish" dans visual studio ou même encore les étapes faites par MageUI.exe.

    Quelqu'un aurait-il un article vraiment détaillé sur le sujet?

    (je pense notement au fait que les fichiers finissent avec des .deploy à la fin - est-ce à ma charge? ou y a t-il des options pour le faire tout seul?)

    Merci d'avance

Discussions similaires

  1. [2.x] Un problème lors du déploiement d'une application symfony 2
    Par elec1984 dans le forum Symfony
    Réponses: 7
    Dernier message: 29/05/2012, 13h59
  2. Champ de saisie lors du déploiement d'une application
    Par vaderetro33 dans le forum VB.NET
    Réponses: 1
    Dernier message: 30/04/2010, 11h05
  3. Réponses: 0
    Dernier message: 29/10/2009, 11h53
  4. Réponses: 3
    Dernier message: 10/09/2009, 19h45
  5. Réponses: 1
    Dernier message: 30/05/2008, 18h34

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