这个问题已经在这里有一个答案:
- 编程方式获得一个DLL的版本号 10回答
我想,以确定“C#” DLL文件的文件版本指定的路径时。 假设路径= “\ X \ Y \ z.dll”。
如何找到z.dll的文件版本给出的路径是什么时候?
注:我使用Compact Framework的3.5 SP1
这个问题已经在这里有一个答案:
我想,以确定“C#” DLL文件的文件版本指定的路径时。 假设路径= “\ X \ Y \ z.dll”。
如何找到z.dll的文件版本给出的路径是什么时候?
注:我使用Compact Framework的3.5 SP1
普通框架
如果它是一个.NET的DLL,你可以使用反射。
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
您可以检查这个计算器的问题 。 在独特的答案你有一个链接与代码博客能解决你的问题。
// 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反射方法才有效。