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 :

Récupérer version d'application


Sujet :

C#

  1. #1
    Membre éclairé Avatar de stephane.julien
    Inscrit en
    Septembre 2007
    Messages
    342
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Septembre 2007
    Messages : 342
    Par défaut Récupérer version d'application
    Bonjour,

    J'aimerais savoir comment gérer les version de mes applications. J'ai vu qu'on peut mettre une version à la Release publiée et je pense utiliser cela. Mais j'aurais besoin de cette version dans mon code. Comment la récupérer?

    Merci d'avance!
    Stéphane

  2. #2
    Membre émérite Avatar de ppphil
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    617
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juin 2007
    Messages : 617
    Par défaut
    Eh ! t'as pas cherché beaucoup !!!
    Application.ProductVersion.ToString()
    où Application fait partie de System.Windows.Forms

  3. #3
    Membre émérite Avatar de ppphil
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    617
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juin 2007
    Messages : 617
    Par défaut
    Pis y a même pas besoin du ToString(), c'est déjà une string....

  4. #4
    Membre éclairé Avatar de stephane.julien
    Inscrit en
    Septembre 2007
    Messages
    342
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Septembre 2007
    Messages : 342
    Par défaut
    Le problème c'est que quand tu tapes ".net csharp release version" sur google, tu trouve à peu près tout sauf ce que tu as besoin...

    Merci pour la réponse!

  5. #5
    Membre éclairé Avatar de stephane.julien
    Inscrit en
    Septembre 2007
    Messages
    342
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Septembre 2007
    Messages : 342
    Par défaut
    Je récupère bien la version de mon appli, mais elle reste à 1.0.0.0. (Je compile en mode DEBUG sous Visual Studio Pro 2005).

    J'aimerais donc que ma version soit à 2.0.0.0. Je l'ai donc spécifié sous les propriétés du projet avec la version de publicatio. Je pense que lorsque je vais publier mon appli, la version sera correcte. Mais existe-t-il un moyen de mettre la bonne version dans le mode DEBUG?

  6. #6
    Membre Expert
    Homme Profil pro
    Inscrit en
    Juillet 2007
    Messages
    1 277
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Réunion

    Informations forums :
    Inscription : Juillet 2007
    Messages : 1 277
    Par défaut
    Pour contrôler la version, il faut dans le fichier Assembly.cs :

    [assembly: AssemblyVersion("x.x.x.x")]
    [assembly: AssemblyFileVersion("x.x.x.x")]

    où x.x.x.x est ta version.

    Ensuite, je préfère utiliser :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    using System.Reflection;
     
    // code pour vérifier la version :
    string version = Assembly.GetExecutingAssembly().FullName.Split(',')[1].Replace("Version=", "").Trim();
    L'avantage c'est que ça fonctionne pour tous les types d'assembly (par comme Application limité au WinForms). Ca fonctionne en DEBUG et RELEASE.

  7. #7
    Inactif  
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Janvier 2007
    Messages
    6 604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Janvier 2007
    Messages : 6 604
    Par défaut
    Citation Envoyé par stephane.julien Voir le message
    Le problème c'est que quand tu tapes ".net csharp release version" sur google, tu trouve à peu près tout sauf ce que tu as besoin...
    Ben, déjà, C# ne rentre pas ne ligne de compte ici.

    Si tu tapes ".net retrieving application version info" tu trouves facilement.

  8. #8
    Membre éclairé Avatar de stephane.julien
    Inscrit en
    Septembre 2007
    Messages
    342
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Septembre 2007
    Messages : 342
    Par défaut
    Merci à tous!

    Je n'arrive toujours pas à récupérer cette version. Voilà ce que j'ai dans mon fichier AssemblyInfo.cs :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    [assembly: AssemblyVersion("2.0.0.0")]
    Dans mon code, j'ai fait la propriété suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    private string Version
        {
          get
          {
            //return System.Reflection.Assembly.GetCallingAssembly().GetName().Version.ToString();
            //return System.Reflection.Assembly.GetExecutingAssembly().GetName().Version.ToString();
            return System.Reflection.Assembly.GetExecutingAssembly().FullName.Split(',')[1].Replace("Version=", "").Trim();
          }
        }
    J'ai essayé les trois possibilités et toutes me renvoient "1.0.0.0"...

  9. #9
    Membre éclairé Avatar de stephane.julien
    Inscrit en
    Septembre 2007
    Messages
    342
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Septembre 2007
    Messages : 342
    Par défaut
    Pas d'idées? Est-ce que chez d'autres personnes ça marche?

  10. #10
    Membre éprouvé
    Avatar de Deadpool
    Homme Profil pro
    Inscrit en
    Novembre 2005
    Messages
    1 312
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Novembre 2005
    Messages : 1 312
    Par défaut
    Et ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Assembly.GetExecutingAssembly().GetName().Version.ToString();
    Ca marche?

  11. #11
    Membre éclairé Avatar de stephane.julien
    Inscrit en
    Septembre 2007
    Messages
    342
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Septembre 2007
    Messages : 342
    Par défaut
    Non ça marche pas. Ca fait partie des trois méthodes que j'ai testées ci-dessus...

  12. #12
    Membre éprouvé
    Avatar de Deadpool
    Homme Profil pro
    Inscrit en
    Novembre 2005
    Messages
    1 312
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Novembre 2005
    Messages : 1 312
    Par défaut
    Exact, j'avais pas vu.

  13. #13
    Membre Expert
    Homme Profil pro
    Inscrit en
    Juillet 2007
    Messages
    1 277
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Réunion

    Informations forums :
    Inscription : Juillet 2007
    Messages : 1 277
    Par défaut
    Juste une question :

    Tu compiles ta solution.

    Tu vas dans l'explorateur Windows jusqu'au répertoire Debug.
    Tu cliques droit sur ton fichier DLL ou EXE puis Propriétés.
    Dans propriétés, tu vas sur l'onglet "Version".

    Normalement il y a deux informations :

    La "Version du fichier" qui est égale au contenu de assembly:AssemblyFileVersion
    La "Assembly Version" qui est égale au contenu de assembly:AssemblyVersion

    Est-ce que ces informations dans le fichier compilé sont correctes ?

  14. #14
    Membre actif Avatar de clodo13
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    67
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Octobre 2007
    Messages : 67
    Par défaut
    1-Modifie la version de ton application dans le "AssemblyInfo.cs"
    Pour cela modifie la variable (exemple version 2.0)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    [assembly: AssemblyFileVersion("2.0.0.0")]
    2-Utilise la fonction "version application" pour récuperer cette valeur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Application.ProductVersion.ToString()
    sa marche !

  15. #15
    Membre éclairé Avatar de stephane.julien
    Inscrit en
    Septembre 2007
    Messages
    342
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Septembre 2007
    Messages : 342
    Par défaut
    Merci de vos réponses...

    La solution de clodo13 ne marche pas non plus...

    Dans propriétés de mon exe, les informations sont 1.0.0.0 alors que dans mon fichier "AssemblyInfo.cs", j'ai :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    [assembly: AssemblyVersion("2.0.11.0")]
    [assembly: AssemblyFileVersion("2.0.0.0")]
    Par contre, j'ai plusieurs projets dans ma solution (6 en tout). Et lorsque je fais "propriétés" des dll de mes projets, toutes n'ont pas la même version. Il y en a 3 qui ont la bonne version et celui qui concerne ma couché présentation (GUI) n'a pas la bonne version.

    Il faut peut-être lier mon AssemblyFile au projet ou l'inverse?

    Merci de vos réponses...

  16. #16
    Membre actif Avatar de clodo13
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    67
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Octobre 2007
    Messages : 67
    Par défaut
    Les solution que je t'ai proposé marche tres bien, mais chez toi sa marche pas donc la réponse tu la trouvera pa ici

    1-Vérifie que ton appli pointe bien vers le bon fichier d'assemnbly
    2-Vérifie que ya la bonne version sur tes projets
    3-fais plein de tests ppiur essayer de remonter le bonne version

    ........

    @+

  17. #17
    Membre éclairé Avatar de stephane.julien
    Inscrit en
    Septembre 2007
    Messages
    342
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Septembre 2007
    Messages : 342
    Par défaut
    Pas trop d'accord avec ceci... Le but de ce forum est quand même de se faire aider par la communauté, et donc d'aider à faire résoudre des problèmes...
    Citation Envoyé par clodo13 Voir le message
    donc la réponse tu la trouvera pa ici
    J'ai approffondi la chose. Je représente la situation :

    J'ai une solution contenant plusieurs projets. Lorsque je génère ma solution, une dll est créée par projet. Toutes les dll n'ont pas les même version car chaque projet n'est pas lié au même assembly.

    J'ai donc créé un assembly pour mon projet GUI, ça fonctionne. Par contre, j'ai un autre projet "Util" et encore un "Business" auxquels j'aimerais affecter la même version que mon projet "GUI". Ma question est donc la suivante :

    Est-t-il possible de lier plusieurs projets visual Studio 2005 sur le même fichier Assembly? Si oui comment?

    Merci d'avance de votre aide!

  18. #18
    Rédacteur
    Avatar de SaumonAgile
    Homme Profil pro
    Team leader
    Inscrit en
    Avril 2007
    Messages
    4 028
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Team leader
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2007
    Messages : 4 028
    Par défaut
    Peut-être en ajoutant une étape de précompilation qui copierais/écraserais le fichier AssemblyInfo.cs pour tous les projets.
    Besoin d'un MessageBox amélioré ? InformationBox pour .NET 1.1, 2.0, 3.0, 3.5, 4.0 sous license Apache 2.0.

    Bonnes pratiques pour les accès aux données
    Débogage efficace en .NET
    LINQ to Objects : l'envers du décor

    Mon profil LinkedIn - MCT - MCPD WinForms - MCTS Applications Distribuées - MCTS WCF - MCTS WCF 4.0 - MCTS SQL Server 2008, Database Development - Mon blog - Twitter

  19. #19
    Membre éclairé Avatar de stephane.julien
    Inscrit en
    Septembre 2007
    Messages
    342
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Septembre 2007
    Messages : 342
    Par défaut
    Merci SaumonAgile, ça pourrait être une possibilité mais je pense qu'il existe un autre moyen. J'ai utilisé le template .NETtiers pour générer la couche DATA (avec CodeSmith) de mon application. Cela m'a généré plusieurs projets qui référencent le même fichier Assembly. Lorsque je regarde les fichiers de mon projet sous VS, je peux voir l'image contenue dans le fichier joint.

    Est-ce que quelqu'un sait comment faire cette sorte de racourci?

    Merci d'avance
    Stéph
    Images attachées Images attachées  

  20. #20
    Membre éclairé Avatar de ZaaN
    Inscrit en
    Novembre 2005
    Messages
    819
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 819
    Par défaut
    moi ca marche avec ca
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     Version VersionNb = typeof(UneClasseDeMonAssembly).Assembly.GetName().Version;
    mais si jamais a une methode plus propre ( sans specifier une classe de mon assembly), je suis preneur.

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. versioning des applications dans Oracle Forms
    Par andon dans le forum Forms
    Réponses: 4
    Dernier message: 25/08/2011, 11h51
  2. récupérer version logiciel dans une variable
    Par blobnet dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 20/05/2008, 15h00
  3. récupérer valeurs d'application externe
    Par docv266 dans le forum Langage
    Réponses: 5
    Dernier message: 14/05/2008, 14h14
  4. Réponses: 5
    Dernier message: 30/04/2008, 23h39
  5. Gestion des versions d'applications
    Par Yust dans le forum Eclipse Java
    Réponses: 2
    Dernier message: 05/04/2007, 17h52

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