Учитывая следующее:
string file = @"c:\somepath\somefile.dll";
Как найти номера файлов и продуктов этой DLL с помощью .NET?
DLL может быть либо нативной, либо управляемой.
Спасибо.
Учитывая следующее:
string file = @"c:\somepath\somefile.dll";
Как найти номера файлов и продуктов этой DLL с помощью .NET?
DLL может быть либо нативной, либо управляемой.
Спасибо.
Да, используя System.Diagnostics.FileVersionInfo.
string fileVersion = FileVersionInfo.GetVersionInfo(file).FileVersion;
string productVersion = FileVersionInfo.GetVersionInfo(file).ProductVersion;
Обратите внимание, что версия файла сборки может отличаться от версии сборки. Версия сборки является частью идентификатора сборки.
Я не знаю о родных DLL, но с управляемыми dlls он работает следующим образом:
System.Reflection.Assembly.LoadFile(file).GetName().Version
EDIT: Я думаю, вы можете прочитать информацию о версии на C с помощью GetFileVersionInfo()
...
FileVersionInfo fi = FileVersionInfo.GetVersionInfo(path);
string fileVersion = fi.FileVersion;
В Windows "Версия файла" и "Версия продукта" одинаковы (или, по крайней мере, для управляемого .dll).
В сборке есть три номера версии. Для информации о том, какие значения они берут, кто их использует и как их читать, см. http://all-things-pure.blogspot.com/2009/09/assembly-version-file-version-product.html.
Если вам нужна информация о версии файла, используйте класс FileVersionInfo
(Документация FileVersionInfo)
Если вам нужна версия сборки, вам нужно будет загрузить эту сборку, используя отражение. Существует пример того, как это сделать на code plex
для версии сборки сборки .net может быть что-то 1.0., 1.1. 1.2., 2.0. скоро другими словами, издатель может выбрать исправление основной и второстепенной версии для проекта, но остальное для компиляции и увеличения. С другой стороны,
string version=System.Reflection.Assembly.GetExecutingAssembly()
.GetName().Version.ToString();
даст полный номер версии с основными, второстепенными, строчными номерами
приведенный выше код С# работает при выполнении .exe и выполнении .dll
Конечно, если вы пытаетесь использовать кого-то dll, вы можете использовать предложение Eclipsed4utoo или EricSchaefer в зависимости от того, как издатель решил назначить версию и построить.