web-dev-qa-db-fra.com

Obtention de la version d'assembly à partir d'AssemblyInfo.cs

Nous avons un fichier AssemblyInfo.cs Dans notre application Web mais nous avons d'autres projets dans la même solution. Ce sont principalement des bibliothèques de classes. On me dit d'afficher la version de l'assembly à partir de AssemblyInfo.cs Sur notre interface utilisateur. J'ai trouvé la solution suivante dans SO from tilisation de C # AssemblyFileVersion dans un programme

using System.Reflection;
Version version = Assembly.GetExecutingAssembly().GetName().Version;

ou

using System.Reflection;
using System.IO;

FileVersionInfo fv = System.Diagnostics.FileVersionInfo.GetVersionInfo
                               (Assembly.GetExecutingAssembly().Location);

Console.WriteLine("AssemblyVersion : {0}", 
         Assembly.GetExecutingAssembly().GetName().Version.ToString());

Console.WriteLine ("AssemblyFileVersion : {0}" , 
         fv.FileVersion.ToString ());

Mais cela m'embrouille un peu. Il indique GetExecutingAssembly() et que faire s'il s'exécute sur un autre assembly à partir d'autres bibliothèques de classes? Ces codes seront-ils extraits du fichier AssemblyInfo.cs Qui réside dans le projet Web en permanence? (c'est ce que je veux)

28
Tarik

Comme l'indique la documentation, Assembly.GetExecutingAssembly() obtient l'assembly que le code appelant a été compilé à l'intérieur de.

Si vous voulez être plus explicite (et plus rapide), vous pouvez écrire typeof(SomeType).Assembly, où SomeType est n'importe quel type dans le projet que vous recherchez.

28
SLaks