号外号外: 原[图享网]更名为 码友网(codedefault.com) 啦,感谢大家一路上的陪伴与支持。代码的世界里,码友网与大家一起同行!

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

.NET 作者: Rector 932阅读 0评论 0收藏 收藏本文

郑重申明:本文未经许可,禁止任何形式转载

[.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);

阅读了该文章的人还浏览了...

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

发布于: 2018-01-27 09:45:59
分享扩散: