.NET 可以在工程属性中设置“程序集版本”与“文件版本”两种版本信息。
其中 程序集版本 不会应用到编译后的程序或是类库的文件右键属性的详细信息当中,仅用于.NET自己的运行环境中。

另一个属性“文件版本”则是会嵌入到文件属性面板中,也可以被系统API调用,只不过默认的.NET工程会将该数据同时应用到“文件版本”与“产品版本”这两个项目当中。

如果你需要分别设置这两个版本号,则可以在 AssemblyInfo.vb 或是 AssemblyInfo.cs 中添加一个参数:

' 程序集版本
<Assembly: AssemblyVersion("1.0.1.0")>
' 文件版本
<Assembly: AssemblyFileVersion("1.2.3.5")>
' 产品版本
<Assembly: AssemblyInformationalVersion("2.3.4.5")>
[Assembly: AssemblyVersion("1.0.1.0")]
[Assembly: AssemblyFileVersion("1.2.3.5")]
[Assembly: AssemblyInformationalVersion("2.3.4.5")]
不过需要注意,当你在工程面板内修改版本信息后,新添加的 AssemblyInformationalVersion 属性不会自动修改,需要你每次手动更新!!!

另外,我们可以直接通过 .NET 的 Diagnostics.FileVersionInfo 类来加载任意 EXE 或是 DLL 文件的版本信息:
Dim fv = FileVersionInfo.GetVersionInfo("...\xxx.exe")
MsgBox(fv.FileVersion) '文件版本
MsgBox(fv.ProductVersion) '产品版本
AssemblyVersion 可以通过 Reflection.AssemblyName 类来获取。
Dim aname = AssemblyName.GetAssemblyName("...\xxx.dll")
MsgBox(aname.Version.ToString)