我知道如何获得正在执行的应用程序或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版本信息.