Предложения, необходимые для наиболее эффективного способа получения версии сборки из внешней сборки - PullRequest
1 голос
/ 03 августа 2009

Мне нужно перебрать список сборок и определить номера их версий. Ранее я использовал System.Reflection.Assembly.GetExecutingAssembly (). GetName (). Version, но в этом случае я работаю со сборками, которые еще не были загружены. Я понимаю, что могу использовать System.Reflection.Assembly.ReflectionOnlyLoadFrom ("assembly.dll"), но я читал, что это может съесть память, если я не загружаю сборки в их собственный домен приложения, а затем выгружаю их. Это верно для ReflectionOnlyLoadFrom () или только LoadFrom ()?

В качестве альтернативы, есть ли способ получения информации о версии без загрузки сборки?

Ответы [ 3 ]

6 голосов
/ 03 августа 2009

Взгляните на System.Reflection.AssemblyName . Вы можете сделать

AssemblyName.GetAssemblyName("foo.dll").Version

, который возвращает System.Version объект, где вы можете получить информацию о главных, второстепенных, второстепенных и незначительных изменениях Согласно статье Msdn о методе GetAssemblyName:

Это будет работать, если файл содержит сборочный манифест. Этот метод вызывает файл, который будет открыт и закрыт, но сборка не добавлена ​​к этому домен.

1 голос
/ 03 августа 2009

Вы можете использовать библиотеку Cecil Mono-проекта.

0 голосов
/ 03 августа 2009

Я думаю, что нет никакой возможности получить версию сборки без загрузки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...