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

时间:2011-05-11 10:42:16

标签: c#

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

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

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

由于

1 个答案:

答案 0 :(得分:11)

您可以使用FileVersionInfo.GetVersionInfo()

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

string showVersion = vi.FileVersion;

// showVersion是实际版本号

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

您也可以使用汇编:

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

这将包含。 NET版本信息