我知道如何获取正在执行的应用程序或dll的版本。但是,我需要找到一个不执行的应用程序的属性。
我有一个小程序来为我的主应用程序设置文件关联。由于应用程序在启动时不接受参数,因此运行此版本的旧版本的用户没有任何意义。因此,当文件关联器启动时,首先检查它是否可以找到主应用程序。如果可以,那么我想检查属性而不执行它。如果版本早于可以接受参数的版本,那么我想告诉我的用户更新而不是继续设置关联。
我查看了System.IO.FileInfo,但似乎没有包含任何版本信息。
由于
答案 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版本信息。