VB.net获取DLL文件版本

时间:2013-12-05 15:15:11

标签: vb.net dll version getfileversion

我有一个我负责的项目,要安装一些Microsoft KB,但是他们要我检查一旦安装了KB,它已经更新了DLL,并且我能看到它们不同的唯一方法是由DLL版本。

有没有办法让VB.net检查DLL文件版本(右击 - 属性 - 详细信息 - 文件版本)?

我在互联网上发现了一些东西,但是我无法让它们工作,或者更有可能我不明白我需要做些什么才能获得正确的信息。

对此的任何帮助都将非常感激。

2 个答案:

答案 0 :(得分:2)

http://msdn.microsoft.com/en-us/library/system.diagnostics.fileversioninfo.fileversion(v=vs.110).aspx

这应该会给你一些见解。

修改

我没有添加文章中的代码,以为我会在链接丢失之前更新答案:

Imports System
Imports System.IO
Imports System.Diagnostics



Class Class1

    Public Shared Sub Main(ByVal args() As String)
    ' Get the file version for the notepad.
    ' Use either of the following two commands.
    FileVersionInfo.GetVersionInfo(Path.Combine(Environment.SystemDirectory, "Notepad.exe"))
    Dim myFileVersionInfo As FileVersionInfo = FileVersionInfo.GetVersionInfo(Environment.SystemDirectory + "\Notepad.exe")


    ' Print the file name and version number.
    Console.WriteLine("File: " + myFileVersionInfo.FileDescription + vbLf + "Version number: " + myFileVersionInfo.FileVersion)

    End Sub
End Class

答案 1 :(得分:2)

调用DLL后,为了确保它已加载,您可以使用以下内容从该DLL获取信息(右键单击DLL时会看到的所有内容):

Dim sModule As String

For Each tModule As ProcessModule In Process.GetCurrentProcess().Modules
  sModule = tModule.FileName
  If sModule.ToUpper.Contains(DLLFileName.ToUpper) Then
    Dim myFileVersionInfo As FileVersionInfo = _
           FileVersionInfo.GetVersionInfo(sModule)
    DLLFileAndVersion = sModule & " " & myFileVersionInfo.ProductVersion
  End If
Next