0

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

4

3 回答 3

1

无论如何,您可以将您的程序集加载到另一个AppDomain 中。

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

编辑:

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

以下是如何在 .Net/C# 中使用此函数的完整代码示例。

于 2012-07-27T10:08:20.760 回答
0

您可以使用AssemblyName

var assemblyName = AssemblyName.GetAssemblyName(assemblyPath);
System.Diagnostics.Debug.WriteLine(assemblyName.Version);
于 2012-07-27T12:51:52.480 回答
0

Example code to find version of DLL library:

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

Edit 1: OK, for getting already executing assembly you can try this example:

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

And links to MSDN this full documentation of this method: Assembly.GetExecutingAssembly Method

于 2012-07-27T09:53:55.570 回答