如何在Compact Framework 3.5中确定dll文件的文件版本

时间:2012-07-25 07:58:08

标签: c# dll compact-framework assemblyfileversion

我想在指定路径时确定'c#'中dll文件的文件版本。 假设path =“\ x \ y \ z.dll”。

如何在给出路径时找到z.dll的文件版本?

注意:我使用Compact Framework 3.5 SP1

2 个答案:

答案 0 :(得分:8)

// Get the file version for the notepad.
FileVersionInfo myFileVersionInfo = FileVersionInfo.GetVersionInfo(Environment.SystemDirectory + "\\Notepad.exe");

// Print the file name and version number.
Console.WriteLine("File: " + myFileVersionInfo.FileDescription + '\n' +
                  "Version number: " + myFileVersionInfo.FileVersion);

来自:http://msdn.microsoft.com/en-us/library/system.diagnostics.fileversioninfo.fileversion.aspx

所以对你:

FileVersionInfo myFileVersionInfo = FileVersionInfo.GetVersionInfo(@"\x\y\z.dll");

如果dll是.net或Win32,则此方法有效。只有当dll是.net。

时,反射方法才有效

答案 1 :(得分:1)

普通框架

如果是.NET DLL,则可以使用Reflection。

using System.Reflection;

Assembly assembly = Assembly.LoadFrom("\x\y\z.dll");
Version ver = assembly.GetName().Version;

如果没有,您可以使用System.Diagnostics:

using System.Diagnostics;

static string GetDllVersion(string dllPath)
{
  FileVersionInfo myFileVersionInfo = FileVersionInfo.GetVersionInfo(dllPath);
  return myFileVersionInfo.FileVersion;
}

// Sample invokation
string result = GetDllVersion(@"C:\Program Files (x86)\Google\Chrome\Application\20.0.1132.57\chrome.dll");
// result value **20.0.1132.57**

紧凑框架

如果您使用的是 .NET Compact Framework ,则无法访问 FileVersionInfo

您可以查看stackoverflow question。在唯一的答案中,您有一个link博客,其中的代码可以解决您的问题。