Страницы

Поиск по вопросам

среда, 10 июля 2019 г.

Можно ли определить набор необходимых библиотек для ехе без его загрузки? [дубликат]

На данный вопрос уже ответили: Анализ сборок дотнета 1 ответ Есть несколько различных .net запускаемых файлов. Можно ли, не загружая их, узнать, какие библиотеки будут загружены при его работе? Точнее, какие References имел его проект, если смотреть как будто бы из VisualStudio?


Ответ

Можно. Используйте ILDasm, Reflector, dotPeek. Открываете в них exe файл и в разделе References смотрите, на какие сборки он ссылается (скриншот из dotPeek):


Программно получить список зареференсенных сборок можно так:
var assembly = Assembly.LoadFile("MyApp.exe"); foreach (var reference in assembly.GetReferencedAssemblies()) { Console.WriteLine(reference.FullName); }
Для более глубокого анализа удобнее использовать библиотеку Mono.Cecil
var assembly = AssemblyDefinition.ReadAssembly(assemblyFilePath); foreach (var reference in assembly.MainModule.AssemblyReferences) { Console.WriteLine(reference.FullName); }

Комментариев нет:

Отправить комментарий