maqfab
Messages postés51Date d'inscriptionmardi 4 novembre 2003StatutMembreDernière intervention28 janvier 2010
-
13 oct. 2008 à 16:10
maqfab
Messages postés51Date d'inscriptionmardi 4 novembre 2003StatutMembreDernière intervention28 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.
maqfab
Messages postés51Date d'inscriptionmardi 4 novembre 2003StatutMembreDernière intervention28 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());
billou_13
Messages postés860Date d'inscriptionjeudi 4 mars 2004StatutMembreDernière intervention19 août 201429 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();
}
maqfab
Messages postés51Date d'inscriptionmardi 4 novembre 2003StatutMembreDernière intervention28 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.
billou_13
Messages postés860Date d'inscriptionjeudi 4 mars 2004StatutMembreDernière intervention19 août 201429 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 ^^