Version des projets rattachés [Résolu]

Signaler
Messages postés
52
Date d'inscription
mardi 4 novembre 2003
Statut
Membre
Dernière intervention
28 janvier 2010
-
Messages postés
52
Date d'inscription
mardi 4 novembre 2003
Statut
Membre
Dernière intervention
28 janvier 2010
-
Bonjour,

J'ai préparé une solution de tests dans laquelle j'ai deux projets : P1 et P2.
P1 est mon projet principal.
Dans les fichiers AssemblyInfo, j'ai codé comme version 1.2.3.4 pour P1, et 5.6.7.8 pour P2.
J'ai ajouté P2 dans les références de P1.

A l'exécution, j'arrive à récupérer la version de P1 par Application.ProductVersion.
Je ne trouve pas comment récupérer la version de P2, directement depuis P1.
Je ne veux pas créer de méthode dans P2 appelable depuis P1.

Quelqu'un a déjà réalisé ça ??

4 réponses

Messages postés
52
Date d'inscription
mardi 4 novembre 2003
Statut
Membre
Dernière intervention
28 janvier 2010

Merci pour ton aide précieuse.

Voici ce qui marche chez moi :

using System.Reflection;
...Assembly A Assembly.Load("P2")  // P2 Nom du projet utilisé en référence dans le proet principal
MessageBox.show(A.GetName().Version.ToString());
Messages postés
860
Date d'inscription
jeudi 4 mars 2004
Statut
Membre
Dernière intervention
19 août 2014
17
Bonjour,

Je vais peut-être dire une connerie mais je me lance:
As-tu essayé en mettant une fonction qui te retourne la version dans ton projet P2:
public string GetVersion()
{
return Assembly.GetExecutingAssembly().GetName().Version.ToString();
}


Billou_13
Messages postés
52
Date d'inscription
mardi 4 novembre 2003
Statut
Membre
Dernière intervention
28 janvier 2010

Merci pour ta réponse, mais c'est ce genre de solution que je veux éviter.
Cette fonctionnalité doit s'intégrer sur un projet existant, et je ne veux pas avoir à déclarer x fois cette fonction.
Messages postés
860
Date d'inscription
jeudi 4 mars 2004
Statut
Membre
Dernière intervention
19 août 2014
17
Re,

Et que penses-tu de cette solution:
string path = System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location);
Assembly assembly = Assembly.LoadFrom(Path.Combine(path, "ClassLibrary1.dll"));
string version = assembly.GetName().Version.ToString();

Peut-être même que l'on peut charger (Assembly.Load(..)) les différents projets reliés d'une autre manière. Ca m'intéresserai si quelqu'un le sait ^^


Billou_13