从非执行可执行文件中获取版本

我知道如何获得正在执行的应用程序或DLL的版本。 但是,我需要找到一个不执行的应用程序的属性。

我有一个小程序来为我的主应用程序设置文件关联。 由于应用程序在启动时不接受参数,因此运行此版本的旧版本的用户没有意义。 因此,当文件关联器启动时,首先检查它是否可以找到主应用程序。 如果可以,那么我想检查属性而不执行它。 如果版本早于可以接受参数的版本,那么我想告诉我的用户更新而不是继续设置关联。

我查看了System.IO.FileInfo,但似乎没有包含任何版本信息。

谢谢

您可以使用FileVersionInfo.GetVersionInfo()

 FileVersionInfo vi = FileVersionInfo.GetVersionInfo("myfile.dll"); 

string showVersion = vi.FileVersion;

// showVersion是实际版本号

这将返回文件/文档元数据,也可用于非托管DLL甚至Word文档

你也可以使用汇编:

 Version v = Assembly.ReflectionOnlyLoadFrom("myfile.dll").GetName().Version; 

这将包含。 NET版本信息