如何获取可执行文件的版本?

6

你好!我正在编写一个vb.net程序,用于更新我的应用程序的readme文件。我想从其他已编译的应用程序中提取版本号。我想从可执行文件中读取版本号,而不是从未编译的资源中读取。

如何在vb.net中实现这一点,而不使用reshacker等外部工具?

(我找到了这个链接,但它是针对另一种语言的。)

1个回答

16
您可以使用类似以下函数的方法来完成它:
Private Function GetFileVersionInfo(ByVal filename As String) As Version
    Return Version.Parse(FileVersionInfo.GetVersionInfo(filename).FileVersion)
End Function

用法:

Debug.WriteLine(GetFileVersionInfo("C:\foo\bar\myapp.exe").ToString)

输出:

4.2.9.281

2
太好了!这个是完美的答案 - 带有代码、输出等等!我花了大约一个小时的时间进行研究来弄清楚它。然而,它似乎并不适用于每一个程序 - 至少我知道它只适用于在资源中给定的文件版本,但我尝试在一个特定的文件上使用它却无法捕获到。但它似乎对我自己的所有程序都有效! - bgmCoder

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接