Bezdepbonusu7Программирование: статьи и ответы

Вопрос

Обнаружение того, какие сборки загружают какие зависимости (во время выполнения)

Автор вопроса: James CrowleyОтветов: 2

Какой самый простой способ узнать, какая сборка вызывает загрузку определенных зависимостей во время выполнения? У меня где-то есть случайная ссылка на старую сборку, в одной из более чем 100 сборок, которые загружаются как часть нашего приложения.

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

Так что это должна быть сборка, которая динамически загружается во время выполнения, или где-то файл конфигурации. Но я не могу найти его для жизни меня.

Интересно, есть ли более разумный способ сделать это?

assembliesassembly-resolutionfuslogvw

Ответы

Ответ 1 · рейтинг 1 · Andrey Taptunov

Возможно, вы можете подписаться на событие AssemblyResolve во всех доменах приложений (если их не слишком много). ResolveEventArgs содержит специальное поле для этого - ResolveEventArgs.RequestingAssembly

Ответ 2 · рейтинг 1 · Mark Cidade

Как насчет удаления (или переименования) сборки, чтобы увидеть, не возникает ли исключение в точке, где программа пытается ее загрузить? Трассировка стека должна содержать ссылку на метод из вызывающей сборки.

Перевод вопроса и ответов сообщества Stack Overflow, лицензия CC BY-SA. Оригинал на Stack Overflow.

Похожие материалы