Как я могу построить «диаграмму дерева зависимостей» из моего решения .NET - PullRequest
8 голосов
/ 17 сентября 2008

Я могу легко увидеть, какие проекты и dll ссылаются на один проект из проекта Visual Studio .NET.

Есть ли какое-либо приложение или использование отражения, которое может создать мне полное дерево зависимостей, которое я могу использовать для построения графической диаграммы зависимостей?

Ответы [ 5 ]

10 голосов
/ 21 ноября 2008

NDepend поставляется с интерактивным графом зависимостей в сочетании с матрицей зависимостей. Вы можете скачать и использовать бесплатную пробную версию NDepend на некоторое время.

Подробнее о графике зависимости NDepend enter image description here

Подробнее о матрице зависимостей NDepend : enter image description here

Отказ от ответственности: я являюсь частью команды инструментов

5 голосов
/ 06 мая 2012

Мне нужно что-то подобное, но я не хотел платить (или устанавливать) инструмент для этого. Я создал быстрый скрипт PowerShell, который просматривает ссылки проекта и выкладывает их в yuml.me дружественный формат вместо этого:

Function Get-ProjectReferences ($rootFolder)
{
    $projectFiles = Get-ChildItem $rootFolder -Filter *.csproj -Recurse
    $ns = @{ defaultNamespace = "http://schemas.microsoft.com/developer/msbuild/2003" }

    $projectFiles | ForEach-Object {
        $projectFile = $_ | Select-Object -ExpandProperty FullName
        $projectName = $_ | Select-Object -ExpandProperty BaseName
        $projectXml = [xml](Get-Content $projectFile)

        $projectReferences = $projectXml | Select-Xml '//defaultNamespace:ProjectReference/defaultNamespace:Name' -Namespace $ns | Select-Object -ExpandProperty Node | Select-Object -ExpandProperty "#text"

        $projectReferences | ForEach-Object {
            "[" + $projectName + "] -> [" + $_ + "]"
        }
    }
}

Get-ProjectReferences "C:\Users\DanTup\Documents\MyProject" | Out-File "C:\Users\DanTup\Documents\MyProject\References.txt"

Sample Graph

3 голосов
/ 17 сентября 2008

В дополнение к NDepend вы также можете попробовать это дополнение для Отражатель для отображения графика зависимости сборки.

2 голосов
/ 19 февраля 2010

Вы можете создать граф зависимостей проектов и сборок в Visual Studio 2010 Ultimate с помощью обозревателя архитектуры, чтобы просмотреть решение, выбрать проекты и взаимосвязи, которые вы хотите визуализировать, а затем создать граф зависимостей из вашего выбора. *

Для получения дополнительной информации см. Следующие темы:

Как: генерировать документы графиков из кода : http://msdn.microsoft.com/en-us/library/dd409453%28VS.100%29.aspx#SeeSpecificSource

Как найти код с помощью обозревателя архитектуры : http://msdn.microsoft.com/en-us/library/dd409431%28VS.100%29.aspx

RC загрузить : http://www.microsoft.com/downloads/details.aspx?displaylang=en&FamilyID=457bab91-5eb2-4b36-b0f4-d6f34683c62a.

Visual Studio 2010 Инструменты архитектурного обнаружения и моделирования форум: http://social.msdn.microsoft.com/Forums/en-US/vsarch/threads

0 голосов
/ 19 февраля 2010

Structure101 может сделать это. Вы можете просматривать модель по сборке и / или пространству имен, и щелкнув любую зависимость на любом уровне, вы получите все ссылки на уровне кода, которые вызывают зависимость. Версия .NET находится в стадии бета-тестирования, но она была доступна для других языков в течение многих лет, поэтому она очень зрелая. Вот пример снимка экрана. альтернативный текст http://www.headwaysoftware.com/images/assemblies.jpg

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...