c# assemblyinfo

C#AssemblyFileVersion uso dentro de un programa



assemblyinfo (5)

Estoy trabajando en un programa, y ​​estoy tratando de mostrar la versión de ARCHIVO de ensamblaje

public static string Version { get { Assembly asm = Assembly.GetExecutingAssembly(); FileVersionInfo fvi = FileVersionInfo.GetVersionInfo(asm.Location); return String.Format("{0}.{1}", fvi.FileMajorPart, fvi.FileMinorPart); } }

Por el momento, esto solo devuelve los primeros dos números de versión en "AssemblyVersion", no "AssemblyFileVersion". Realmente me gustaría simplemente hacer referencia a AssemblyFileVersion en lugar de almacenar una variable interna llamada "Versión" que tengo que actualizar tanto esta como la versión de ensamblado ...

[assembly: AssemblyVersion("1.0.*")] [assembly: AssemblyFileVersion("3.5.0")]

Esa es mi AssemblyFileVersion de AssemblyInfo.cs. Me gustaría simplemente hacer referencia a la parte "3.5.x", no a la "1.0. *": /

Gracias, Zack


Para obtener la versión del ensamblaje que se está ejecutando actualmente, puede usar:

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

La clase de ensamblaje también puede cargar archivos y acceder a todos los ensamblajes cargados en un proceso.


Supongo que deberás usar la clase FileVersionInfo.

System.Diagnostics.FileVersionInfo.GetVersionInfo(FullpathToAssembly)


Use ProductMajorPart / ProductMinorPart en lugar de FileMajorPart / FileMinorPart:

public static string Version { get { Assembly asm = Assembly.GetExecutingAssembly(); FileVersionInfo fvi = FileVersionInfo.GetVersionInfo(asm.Location); return String.Format("{0}.{1}", fvi.ProductMajorPart, fvi.ProductMinorPart); } }


var fileVersion = GetCustomAttributeValue<AssemblyFileVersionAttribute>(assembly, "Version"); private static string GetCustomAttributeValue<T>(Assembly assembly, string propertyName) where T : Attribute { if (assembly == null || string.IsNullOrEmpty(propertyName)) return string.Empty; object[] attributes = assembly.GetCustomAttributes(typeof(T), false); if (attributes.Length == 0) return string.Empty; var attribute = attributes[0] as T; if (attribute == null) return string.Empty; var propertyInfo = attribute.GetType().GetProperty(propertyName); if (propertyInfo == null) return string.Empty; var value = propertyInfo.GetValue(attribute, null); return value.ToString(); }


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 ());