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

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

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

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

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

Ответы [ 2 ]

1 голос
/ 31 января 2011

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

1 голос
/ 31 января 2011

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

...