Чтобы найти версию файла dll
Я хочу найти версию DLL, когда указан путь. Предположим, путь = "progfiles/harry/sample.dll". Как найти версию sample.dll. Поскольку я использую.net Framework 3.5 SP1, я не могу использовать FileVersionInfo. Я попробовал Assembly.LoadFrom. Но проблема, с которой я сталкиваюсь с LoadFrom: "Если сборка с таким же идентификатором уже загружена, LoadFrom возвращает загруженную сборку, даже если указан другой путь".
3 ответа
В любом случае, вы можете просто загрузить свою сборку в другой домен приложений.
var domain = AppDomain.CreateDomain("tmp");
var version = domain.Load().GetName(path).Version;
РЕДАКТИРОВАТЬ:
Вы ориентируетесь на Windows CE, поэтому можете использовать функцию GetFileVersionInfo.
Вот полный пример кода, как использовать эту функцию из.Net/C#.
Ты можешь использовать AssemblyName
:
var assemblyName = AssemblyName.GetAssemblyName(assemblyPath);
System.Diagnostics.Debug.WriteLine(assemblyName.Version);
Пример кода для поиска версии библиотеки DLL:
Version ver = Assembly.LoadFrom("Library.dll").GetName().Version;
Редактировать 1: ОК, для получения уже выполняющейся сборки вы можете попробовать этот пример:
Assembly SampleAssembly;
SampleAssembly = Assembly.GetAssembly(ObjectLoadedFromDLL.GetType());
Version ver = Assembly.GetExecutingAssembly().GetName().Version;
И ссылки на MSDN это полная документация этого метода: Assembly.GetExecutingAssembly Метод