Version des projets rattachés

Résolu
maqfab Messages postés 51 Date d'inscription mardi 4 novembre 2003 Statut Membre Dernière intervention 28 janvier 2010 - 13 oct. 2008 à 16:10
maqfab Messages postés 51 Date d'inscription mardi 4 novembre 2003 Statut Membre Dernière intervention 28 janvier 2010 - 14 oct. 2008 à 09:55
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

maqfab Messages postés 51 Date d'inscription mardi 4 novembre 2003 Statut Membre Dernière intervention 28 janvier 2010
14 oct. 2008 à 09:55
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());
3
billou_13 Messages postés 860 Date d'inscription jeudi 4 mars 2004 Statut Membre Dernière intervention 19 août 2014 29
13 oct. 2008 à 16:46
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
0
maqfab Messages postés 51 Date d'inscription mardi 4 novembre 2003 Statut Membre Dernière intervention 28 janvier 2010
13 oct. 2008 à 17:10
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.
0
billou_13 Messages postés 860 Date d'inscription jeudi 4 mars 2004 Statut Membre Dernière intervention 19 août 2014 29
13 oct. 2008 à 17:49
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
0
Rejoignez-nous