小池啓仁 ヒロヒト応援ブログ By はてな

小池啓仁(コイケヒロヒト)の動画など。

小池啓仁 ヒロヒト応援ブログ By はてな

VB2005で作成したEXEファイルのバージョン取得方法

VB2005で作成したEXEファイルのバージョン情報は、以下の3種類があります。

  • アセンブリバージョン - .NETアセンブリ用のバージョン番号。
  • ファイルバージョン - Win32ファイル・システム用のバージョン番号。
  • 製品バージョン - プログラム用のバージョン番号。

そして、上記バージョン情報は、各々以下の4つのバージョンから構成(major.minor.build.revision)されています。

  • major(メジャーバージョン)ファイル名が同じでも、このバージョンが異なる場合は、互換性がない。
  • minor(マイナーバージョン)ファイル名、majorが同じで、このバージョンが異なる場合は、下位互換性がある。
  • build(ビルドバージョン)プロセッサやプラットフォーム等が変更された場合、同一ソースでコンパイルした時。
  • revision(リビジョンバージョン)完全互換を目的とする(ホトフィックス更新等)

バージョン取得のサンプル

ファイルバージョンと製品バージョンは、FileVersionInfoクラスからで、
アセンブリバージョンは、Assemblyクラスから求めます。

Imports System.Diagnostics
Imports System.Reflection

Dim FileInfo As FileVersionInfo
FileInfo = FileVersionInfo.GetVersionInfo("C:\WindowsApplication1.exe")

'ファイルバージョン
MsgBox(FileInfo.FileVersion)


'製品バージョン
MsgBox(FileInfo.ProductVersion)


Dim AssemblyVersionValue As Version
Dim AssemblyVersion      As String
AssemblyVersionValue = Assembly.LoadFile("C:\WindowsApplication1.exe").GetName().Version
AssemblyVersion = CStr(AssemblyVersionValue.Major) & "." & _
                  CStr(AssemblyVersionValue.Minor) & "." & _
                  CStr(AssemblyVersionValue.BUild) & "." & _
                  CStr(AssemblyVersionValue.Revision)
'アセンブリバージョン
MsgBox(AssemblyVersion)

参考:http://forums.microsoft.com/MSDN-JA/ShowPost.aspx?PostID=1747107&SiteID=7

実は、アセンブリバージョンの取得方法がどうしてもわからず、上記BBSで教えてもらいました。