Как я определяю зависимости приложения.NET?

100
задан Colonel Panic 23 November 2015 в 11:21
поделиться

4 ответа

Зависимость Уокер работает над нормальными 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, который может показать Вам, что продолжается во времени выполнения

88
ответ дан yoyo 24 November 2019 в 04:51
поделиться

Для просмотра.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 dependencies browsing through C# LINQ query

, граф зависимостей похож:

NDepend Dependency Graph

матрица зависимости похожа:

NDepend Dependency Matrix

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

NDepend Matrix vs Graph

Правовая оговорка: Я работаю на NDepend

18
ответ дан Patrick from NDepend team 24 November 2019 в 04:51
поделиться

Включите вход привязки сборки, устанавливает значение реестра EnableLog в HKLM\Software\Microsoft\Fusion к 1. Обратите внимание, что необходимо перезапустить приложение (используйте iisreset) для изменений, чтобы иметь любой эффект.

Подсказка: Не забывают выключать вход сплава, когда Вы сделаны, так как существует потеря производительности для включения его.

5
ответ дан Ramesh 24 November 2019 в 04:51
поделиться

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.

0
ответ дан 24 November 2019 в 04:51
поделиться
Другие вопросы по тегам:

Похожие вопросы: