Pregunta ¿Cómo puedo obtener la versión del archivo de ensamblaje?


En AssemblyInfo hay dos versiones de ensamblaje:

  1. AssemblyVersion: Especifique la versión del ensamblaje que se le atribuye.
  2. AssemblyFileVersion: Indica a un compilador que use un número de versión específico para el recurso de la versión del archivo Win32. No es necesario que la versión del archivo Win32 sea la misma que el número de versión del ensamblaje.

Puedo obtener el Assembly Version con la siguiente línea de código:

Version version = Assembly.GetEntryAssembly().GetName().Version;

Pero ¿cómo puedo obtener el Assembly File Version?


581
2018-05-26 08:19


origen


Respuestas:


Vea mi comentario anterior pidiendo aclaraciones sobre lo que realmente quiere. Espero que sea esto:

System.Reflection.Assembly assembly = System.Reflection.Assembly.GetExecutingAssembly();
FileVersionInfo fvi = FileVersionInfo.GetVersionInfo(assembly.Location);
string version = fvi.FileVersion;

716
2018-05-26 08:26



Existen tres versiones: montaje, archivoy producto. Son utilizados por diferentes características y toman diferentes valores predeterminados si no los especifica explícitamente.

string assemblyVersion = Assembly.GetExecutingAssembly().GetName().Version.ToString(); 
string assemblyVersion = Assembly.LoadFile('your assembly file').GetName().Version.ToString(); 
string fileVersion = FileVersionInfo.GetVersionInfo(Assembly.GetExecutingAssembly().Location).FileVersion; 
string productVersion = FileVersionInfo.GetVersionInfo(Assembly.GetExecutingAssembly().Location).ProductVersion;

134
2017-10-22 08:51



Cuando quiero acceder a la versión del archivo de la aplicación (lo que está configurado en Información de la Asamblea -> Versión del archivo), diga para establecer el texto de una etiqueta en la carga del formulario para mostrar la versión, acabo de utilizar

versionlabel.Text = "Version " + Application.ProductVersion;

56
2018-02-25 17:11



ACTUALIZACIÓN: Según lo mencionado por Richard Grimes en mi cita citada, @Iain y @Dmitry Lobanov, mi respuesta es correcta en teoría pero incorrecta en la práctica.

Como debería haber recordado de innumerables libros, etc., mientras uno establece estas propiedades usando el [assembly: XXXAttribute], ellos son secuestrados por el compilador y colocados en el VERSIONINFO recurso.

Por el motivo anterior, debe usar el enfoque en @ Respuesta de Xiaofu como los atributos se eliminan después de que la señal ha sido extraída de ellos.


cadena estática pública GetProductVersion ()
{
  var attribute = (AssemblyVersionAttribute) Assembly
    .GetExecutingAssembly ()
    .GetCustomAttributes (typeof (AssemblyVersionAttribute), true)
    .Soltero();
   return attribute.InformationalVersion;
}

(De http://bytes.com/groups/net/420417-assemblyversionattribute - como se indica allí, si está buscando un atributo diferente, sustitúyalo por el anterior)


20
2018-05-26 08:24



Utilizar esta:

((AssemblyFileVersionAttribute)Attribute.GetCustomAttribute(
    Assembly.GetExecutingAssembly(), 
    typeof(AssemblyFileVersionAttribute), false)
).Version;

O esto:

new Version(System.Windows.Forms.Application.ProductVersion);

2
2018-06-19 02:50



Puede obtener la versión de ensamblaje con My.Application.Info.Version


-4
2017-09-11 14:51