使用Python提取DLL中的程序集版本

4 投票
2 回答
4445 浏览
提问于 2025-04-16 20:13

我正在尝试用Python从一个DLL文件中提取一些版本信息。我看了这个问题:Python windows 文件版本属性

这个问题对我有帮助,但我还需要从DLL中获取“程序集版本”。当我右键点击并查看版本标签时可以看到这个信息,但我不确定怎么用Python提取它。

在这个页面上:http://timgolden.me.uk/python/win32_how_do_i/get_dll_version.html

Tim Golden说:

你可以使用pywin32附带的演示中的一些稍微复杂的、依赖语言的代码,来找到下面框中的字符串。

有没有人能指给我一个可能有用的例子?我在win32api目录里找过,但没有找到明显的东西。我能在那找到解决方案吗?

2 个回答

4

如果你不想依赖于 Python.Net 这个库,你也可以直接使用 win32 api:

from win32api import GetFileVersionInfo, LOWORD, HIWORD

def get_version_number (filename):
   info = GetFileVersionInfo (filename, "\\")
   ms = info['FileVersionMS']
   ls = info['FileVersionLS']
   return HIWORD (ms), LOWORD (ms), HIWORD (ls), LOWORD (ls)

来源:http://timgolden.me.uk/python/win32_how_do_i/get_dll_version.html

3

我不太确定你能否通过原生代码获取这些信息。通常获取程序集信息的方法是运行 .Net 代码(比如 C#)。所以我猜如果你想用 Python 做同样的事情,你需要运行一个 .Net 的 Python 解释器。你可以看看这个网站 http://pythonnet.github.io/

撰写回答