如何獲取程序集文件版本

AssemblyInfo ,有兩個程序集版本: spa

  1. AssemblyVersion :指定要賦予屬性的部件的版本。
  2. AssemblyFileVersion :指示編譯器對Win32文件版本資源使用特定的版本號。 Win32文件版本不須要與程序集的版本號相同。

我能夠使用如下代碼行獲取Assembly Versioncode

Version version = Assembly.GetEntryAssembly().GetName().Version;

可是,如何獲取Assembly File Versionorm


#1樓

您能夠使用My.Application.Info.Version獲取程序集版本資源


#2樓

當我要訪問應用程序文件版本(在「裝配體信息->文件版本」中設置的內容)時,例如說要在表單加載時爲其設置標籤文本以顯示版本,我剛剛使用了get

versionlabel.Text = "Version " + Application.ProductVersion;

#3樓

三個版本程序集文件產品 。 它們由不一樣的功能使用,而且若是您未明確指定它們,則採用不一樣的默認值。 編譯器

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;

#4樓

用這個: string

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

或這個: 產品

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

#5樓

更新:正如Richard Grimes在我引用的帖子 @Iain和@Dmitry Lobanov中提到的那樣,個人回答在理論上是正確的,但在實踐中是錯誤的。 it

正如我從無數書籍等中所記得的那樣,雖然使用[assembly: XXXAttribute]設置了這些屬性,但它們卻被編譯器劫持並放置在VERSIONINFO資源中。 io

因爲上述緣由,您須要在@Xiaofu的答案中使用該方法,由於從信號中提取信號後,這些屬性將被剝離。


public static string GetProductVersion()
{
  var attribute = (AssemblyVersionAttribute)Assembly
    .GetExecutingAssembly()
    .GetCustomAttributes( typeof(AssemblyVersionAttribute), true )
    .Single();
   return attribute.InformationalVersion;
}

(來自http://bytes.com/groups/net/420417-assemblyversion屬性-如此處所述,若是您要查找其餘屬性,請將該屬性替換爲上面的屬性)

相關文章
相關標籤/搜索