График зависимостей проектов Visual Studio - PullRequest
108 голосов
/ 28 февраля 2009

В настоящее время я переносю большое решение (~ 70 проектов) с VS 2005 + .NET 2.0 на VS 2008 + .NET 3.5. В настоящее время у меня VS 2008 + .NET 2.0.

Проблема в том, что мне нужно переместить проекты один за другим в новую платформу .NET, чтобы ни один проект .NET 2.0 не ссылался на проект .NET 3.5. Есть ли какой-нибудь инструмент, который бы дал мне хороший график зависимости проекта?

Ответы [ 13 ]

139 голосов
/ 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

62 голосов
/ 13 марта 2013

Обновление: ReSharper, начиная с версии 8, имеет встроенную функцию «Просмотр зависимостей проекта» .

ReSharper версия <8 имеет <a href="http://ipishukod.blogspot.ru/2013/02/vs-project-dependencies-viewer-one-that.html" rel="noreferrer" title="See blog post about it"> Внутренняя функция для отображения графиков зависимостей при использовании просмотра yFiles Смотрите краткое руководство внизу поста.

enter image description here

Howto

  1. Установите инструмент YEd из здесь .
  2. Запустить VS с аргументом командной строки /resharper.internal.
  3. Перейдите в ReSharper / Internal / Show Dependencies.
  4. Укажите проекты, которые вы хотите включить в «общую картину».
  5. Снимите флажок «Исключить терминальные узлы ...», если вам это не нужно.
  6. Нажмите «Показать».
  7. Использовать иерархическое расположение в yEd (Alt + Shift + H)
  8. Оставить отзыв =)
35 голосов
/ 28 февраля 2009

Вы пробовали NDepend? Он покажет вам зависимости, и вы также сможете проанализировать удобство использования ваших классов и методов.

Их сайт:

http://ndepend.com

30 голосов
/ 31 июля 2010

Вы можете легко получить график зависимости проекта с помощью Visual Studio 2010 Ultimate, отсканировав это видео за 5 минут, чтобы увидеть, как: http://www.lovettsoftware.com/blogengine.net/post/2010/05/27/Architecture-Explorer.aspx

В Visual Studio 2010 Ultimate: Архитектура | Создать график зависимостей | По сборке.

17 голосов
/ 25 марта 2011

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

8 голосов
/ 13 февраля 2015

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

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

https://github.com/smpickett/DependencyViewer

(прямая ссылка на релиз github: https://github.com/smpickett/DependencyViewer/releases)

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

Вы можете создать график зависимости ваших проектов в VS 2010 Ultimate. Architecture Explorer позволяет просматривать ваше решение, выбирать проекты и взаимосвязи, которые вы хотите визуализировать, а затем создавать график зависимостей из вашего выбора.

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

Как: генерировать документы графиков из кода : 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

5 голосов
/ 06 сентября 2010

Чтобы завершить eriawan ответ на графиках, сгенерированных NDepend, смотрите скриншоты ниже. Вы можете скачать и использовать бесплатную пробную версию NDepend на некоторое время.

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

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

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

3 голосов
/ 12 марта 2010

Вы можете создать симпатичный график ссылок в ваших проектах. Я описал, как я сделал это в моем блоге http://www.mellekoning.nl/index.php/2010/03/11/project-references-in-ddd/

3 голосов
/ 12 октября 2009

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

Анализатор зависимостей

...