81 votes

Obtenir la valeur AssemblyInformationalVersion de l'assembly .NET?

Quelle est la syntaxe C # pour obtenir la valeur d'attribut AssemblyInformationalVersion l'assembly au moment de l'exécution? Exemple:

[assembly: AssemblyInformationalVersion("1.2.3.4")]

79voto

lance Points 6325
using System.Reflection.Assembly  
using System.Diagnostics.FileVersionInfo

// ...

public string GetInformationalVersion(Assembly assembly) {
    return FileVersionInfo.GetVersionInfo(assembly.Location).ProductVersion;
}

43voto

xanatos Points 30513
 var attr = Assembly
    .GetEntryAssembly()
    .GetCustomAttributes(typeof(AssemblyInformationalVersionAttribute), false) 
    as AssemblyInformationalVersionAttribute[];
 

C'est un tableau de AssemblyInformationalVersionAttribute . Ce n'est pas toujours nul même s'il n'y a pas d'attribut du type recherché.

 var attr2 = Attribute
    .GetCustomAttribute(
        Assembly.GetEntryAssembly(), 
        typeof(AssemblyInformationalVersionAttribute)) 
    as AssemblyInformationalVersionAttribute;
 

Cela peut être nul si l'attribut n'est pas présent.

 var attr3 = Attribute
    .GetCustomAttributes(
         Assembly.GetEntryAssembly(), 
         typeof(AssemblyInformationalVersionAttribute)) 
    as AssemblyInformationalVersionAttribute[];
 

Identique au premier.

12voto

wollnyst Points 375

Même si la question est un peu ancienne:

Je propose une solution différente qui fonctionne pour moi:

 Application.ProductVersion
 

10voto

DeCaf Points 2990
AssemblyInformationalVersionAttribute attribute = 
   (AssemblyInformationalVersionAttribute)Assembly.GetExecutingAssembly()
   .GetCustomAttributes(typeof(AssemblyInformationalVersionAttribute), false).FirstOrDefault();

if (attribute != null)
     Console.WriteLine(attribute.InformationalVersion);

6voto

Aerthel Points 181

Pour compléter la réponse de lance: Vous pouvez utiliser Application.ResourceAssembly.Location pour connaître le chemin du fichier de votre assemblage. Avec cela, il est possible d’obtenir la chaîne AssemblyInformationalVersion en une seule ligne

 System.Diagnostics.FileVersionInfo.GetVersionInfo(Application.ResourceAssembly.Location).ProductVersion
 

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X