首页 / .NET / 正文

[.NET/C#]C#中如何获取一个程序集文件的版本号?

6948 发布于: 2018-01-27 读完约需4分钟

[.NET/C#]C#中如何获取一个程序集文件的版本号?

问题描述

AssemblyInfo中有两个关于程序集版本的类:

  • AssemblyVersion:是程序集的版本,.NET的CLR用,用于标识出该dll的版本信息,用于定义强名称的版本号;
  • AssemblyFileVersion: 为编译器生成的文件加入版本号,只是一个文件号标识,没有具体的作用,也就是在资源管理器里查看属性时看到的版本
    我们可以通过如下代码获取到程序集的版本:
Version version = Assembly.GetEntryAssembly().GetName().Version;

但是如何通过C#代码获取到程序集文件的版本号呢?

方案一

通过FileVersionInfoGetVersionInfo(...)方法来获得程序集文件的版本号:

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

方案二

通过FileVersionInfoGetVersionInfo(...)方法不仅可以获得程序集文件的版本号,还有比如ProductVersion

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;

方案三

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

或者

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

版权声明:本作品系原创,版权归码友网所有,如未经许可,禁止任何形式转载,违者必究。

上一篇: 非常漂亮精致基于Bootstrap+Material的轻量级响应式后台管理系统模板框架UI(Bootstrap 4)

下一篇: [.NET/C#]C# Winform/WPF程序中确保一台计算机只能同时运行一个应用程序实例的方法有哪些?

本文永久链接码友网 » [.NET/C#]C#中如何获取一个程序集文件的版本号?

分享扩散:

发表评论

登录用户才能发表评论, 请 登 录 或者 注册