Зависимость Уокер работает над нормальными win32 двоичными файлами. Весь dll's.NET и exe's имеют маленькую тупиковую часть заголовка, которая заставляет их быть похожими на нормальные двоичные файлы, но все, что это в основном говорит, является "загрузкой CLR" - таким образом, это - весь, что зависимость Уокер скажет Вам.
Для наблюдения, на который на самом деле полагаются вещи приложение.NET можно использовать чрезвычайно превосходное отражатель.NET от Красного Логического элемента. (РЕДАКТИРОВАНИЕ: Обратите внимание, что Отражатель.NET является теперь заплаченным продуктом. ILSpy свободен и с открытым исходным кодом и очень похож.)
Загрузка Ваш DLL в него, щелкните правой кнопкой, и выбрал 'Analyze' - Вы будете тогда видеть, "Зависит От" объекта, который покажет Вам все другие dll's (и методы в тех dll's), что этому нужно.
Это может иногда становиться более хитрым, хотя, в котором Ваше приложение зависит от X dll, и X dll присутствуют, но по любой причине не может быть загружен или расположен во времени выполнения.
Для поиска и устранения неисправностей тех видов проблем Microsoft имеет Assembly Binding Log Viewer, который может показать Вам, что продолжается во времени выполнения
Для просмотра.NET кодируют зависимости, можно использовать возможности инструмента NDepend. Инструмент делает предложение:
, Например, такой запрос может быть похожим:
from m in Methods
let depth = m.DepthOfIsUsing("NHibernate.NHibernateUtil.Entity(Type)")
where depth >= 0 && m.IsUsing("System.IDisposable")
orderby depth
select new { m, depth }
И его результат похож: (заметьте метрику кода , глубина , 1 для прямых вызывающих сторон, 2 для вызывающих сторон прямых вызывающих сторон...) (заметьте также, что кнопка Export to Graph экспортирует результат запроса в Граф вызовов )
, граф зависимостей похож:
матрица зависимости похожа:
матрица зависимости фактическая менее интуитивный, чем график, но это больше подходит просматривать сложные разделы кода как:
Правовая оговорка: Я работаю на NDepend
Включите вход привязки сборки, устанавливает значение реестра EnableLog в HKLM\Software\Microsoft\Fusion к 1. Обратите внимание, что необходимо перезапустить приложение (используйте iisreset) для изменений, чтобы иметь любой эффект.
Подсказка: Не забывают выключать вход сплава, когда Вы сделаны, так как существует потеря производительности для включения его.
Another handy Reflector add-in that I use is the Dependency Structure Matrix. It's really great to see what classes use what. Plus it's free.