Given the following:
string file = @"c:\somepath\somefile.dll";
How can I find the file and product version numbers of that DLL using .NET?
The dll can be either native or managed.
Thanks.
Given the following:
string file = @"c:\somepath\somefile.dll";
How can I find the file and product version numbers of that DLL using .NET?
The dll can be either native or managed.
Thanks.
I don't know about native dlls but with managed dlls it works like this:
System.Reflection.Assembly.LoadFile(file).GetName().Version
EDIT: I think you can read the version info in C with GetFileVersionInfo()
...
Yes, using System.Diagnostics.FileVersionInfo.
string fileVersion = FileVersionInfo.GetVersionInfo(file).FileVersion;
string productVersion = FileVersionInfo.GetVersionInfo(file).ProductVersion;
Be advised that the file version of an assembly could be different from its assembly version. The assembly version is part of the assembly's identity.
If you want the file version information then use the FileVersionInfo
class (FileVersionInfo documentation)
If you want the assembly version then you will need to load that assembly using reflection. There is an example of how to do this on code plex
FileVersionInfo fi = FileVersionInfo.GetVersionInfo(path);
string fileVersion = fi.FileVersion;
In Windows, the "File Version" and "Product Version" are the same(or atleast it is for a managed .dll).
There are three version numbers in an assembly. For info on what values they take, who uses them, and how to read them, see http://all-things-pure.blogspot.com/2009/09/assembly-version-file-version-product.html.