在运行时获取程序集的AssemblyInformationalVersion
属性值的C#语法是什么?示例:
[assembly: AssemblyInformationalVersion("1.2.3.4")]
发布于 2011-10-15 00:23:25
using System.Reflection.Assembly
using System.Diagnostics.FileVersionInfo
// ...
public string GetInformationalVersion(Assembly assembly) {
return FileVersionInfo.GetVersionInfo(assembly.Location).ProductVersion;
}
发布于 2011-10-14 23:47:58
var attr = Assembly
.GetEntryAssembly()
.GetCustomAttributes(typeof(AssemblyInformationalVersionAttribute), false)
as AssemblyInformationalVersionAttribute[];
它是一个AssemblyInformationalVersionAttribute
数组。即使没有搜索到的类型的属性,它也不会是null。
var attr2 = Attribute
.GetCustomAttribute(
Assembly.GetEntryAssembly(),
typeof(AssemblyInformationalVersionAttribute))
as AssemblyInformationalVersionAttribute;
如果该属性不存在,则可以为null。
var attr3 = Attribute
.GetCustomAttributes(
Assembly.GetEntryAssembly(),
typeof(AssemblyInformationalVersionAttribute))
as AssemblyInformationalVersionAttribute[];
和first一样。
发布于 2014-05-30 23:35:51
在您的应用程序中使用已知类型,您可以简单地执行以下操作:
using System.Reflection;
public static readonly string ProductVersion = typeof(MyKnownType).Assembly.GetCustomAttribute<AssemblyInformationalVersionAttribute>().InformationalVersion;
当然,用于获取应用属性的程序集的任何过程都是好的。注意,这并不依赖于System.Diagnostics
或WinForm的Application
对象。
https://stackoverflow.com/questions/7770068
复制相似问题