要查找文件的dll版本

时间:2012-07-27 09:46:58

标签: c# dll compact-framework windows-ce .net-cf-3.5

我想在指定路径时找到dll版本。假设path =“progfiles / harry / sample.dll”。如何找到sample.dll版本。由于我使用的是.net framework 3.5 SP1,我无法使用FileVersionInfo。我试过Assembly.LoadFrom。但我遇到的LoadFrom问题是“如果已加载具有相同标识的程序集,则即使指定了不同的路径,LoadFrom也会返回加载的程序集。”

3 个答案:

答案 0 :(得分:1)

无论如何,您只需将程序集加载到另一个 AppDomain中。

var domain = AppDomain.CreateDomain("tmp");
var version = domain.Load().GetName(path).Version;

修改

您的目标是Windows CE,因此可以使用GetFileVersionInfo功能。

Here是一个完整的代码示例,如何在.Net / C#中使用此函数。

答案 1 :(得分:0)

查找DLL库版本的示例代码:

Version ver = Assembly.LoadFrom("Library.dll").GetName().Version;

编辑1: 好的,为了获得已经执行的程序集,您可以尝试这个例子:

Assembly SampleAssembly;
SampleAssembly = Assembly.GetAssembly(ObjectLoadedFromDLL.GetType());
Version ver = Assembly.GetExecutingAssembly().GetName().Version;

并向MSDN链接此方法的完整文档:Assembly.GetExecutingAssembly Method

答案 2 :(得分:0)

您可以使用AssemblyName

var assemblyName = AssemblyName.GetAssemblyName(assemblyPath);
System.Diagnostics.Debug.WriteLine(assemblyName.Version);