[.NET/C#]C#中如何获取一个程序集文件的版本号?
问题描述
在AssemblyInfo
中有两个关于程序集版本的类:
- AssemblyVersion:是程序集的版本,.NET的CLR用,用于标识出该dll的版本信息,用于定义强名称的版本号;
- AssemblyFileVersion: 为编译器生成的文件加入版本号,只是一个文件号标识,没有具体的作用,也就是在资源管理器里查看属性时看到的版本
我们可以通过如下代码获取到程序集的版本:
Version version = Assembly.GetEntryAssembly().GetName().Version;
但是如何通过C#代码获取到程序集文件的版本号呢?
方案一
通过FileVersionInfo
的GetVersionInfo(...)
方法来获得程序集文件的版本号:
System.Reflection.Assembly assembly = System.Reflection.Assembly.GetExecutingAssembly();
FileVersionInfo fvi = FileVersionInfo.GetVersionInfo(assembly.Location);
string version = fvi.FileVersion;
方案二
通过FileVersionInfo
的GetVersionInfo(...)
方法不仅可以获得程序集文件的版本号,还有比如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);
版权声明:本作品系原创,版权归码友网所有,如未经许可,禁止任何形式转载,违者必究。
发表评论
登录用户才能发表评论, 请 登 录 或者 注册