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