Cómo puedo obtener la versión del archivo ensamblador
En AssemblyInfo
hay dos versiones de ensamblaje:
-
AssemblyVersion
: Especifique la versión del ensamblado que se está atribuyendo. -
AssemblyFileVersion
: Indica a un compilador que use un número de versión específico para el recurso de 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 ensamblado.
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
?
6 answers
Ver mi comentario anterior pidiendo una aclaración sobre lo que realmente quiere. Espero que esto sea todo:
System.Reflection.Assembly assembly = System.Reflection.Assembly.GetExecutingAssembly();
FileVersionInfo fvi = FileVersionInfo.GetVersionInfo(assembly.Location);
string version = fvi.FileVersion;
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-05-12 16:13:23
Hay tres versiones: asamblea, archivo, y 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;
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-12-19 17:15:17
Cuando quiero acceder a la versión del archivo de la aplicación (lo que se establece en Información del ensamblaje - > Versión del archivo), digamos que para establecer el texto de una etiqueta en la carga del formulario para mostrar la versión, acabo de usar
versionlabel.Text = "Version " + Application.ProductVersion;
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2013-05-14 11:43:06
ACTUALIZACIÓN: Como menciona Richard Grimes en mi citado post, @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 que uno establece estas propiedades usando el [assembly: XXXAttribute]
, son highjackeadas por el compilador y colocadas en el recurso VERSIONINFO
.
Por la razón anterior, debe usar el enfoque en @ Xiaofu's answer ya que los atributos se eliminan después de que la señal haya sido extraído de ellos.
public static string GetProductVersion() { var attribute = (AssemblyVersionAttribute)Assembly .GetExecutingAssembly() .GetCustomAttributes( typeof(AssemblyVersionAttribute), true ) .Single(); return attribute.InformationalVersion; }
(De http://bytes.com/groups/net/420417-assemblyversionattribute - como se indica allí, si usted está buscando un atributo diferente, sustituir que en el anterior)
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-05-23 12:26:36
Usa esto:
((AssemblyFileVersionAttribute)Attribute.GetCustomAttribute(
Assembly.GetExecutingAssembly(),
typeof(AssemblyFileVersionAttribute), false)
).Version;
O esto:
new Version(System.Windows.Forms.Application.ProductVersion);
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-01-30 14:33:26
Puede obtener la versión de ensamblaje con My.Application.Info.Version
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2012-09-11 15:41:10