График зависимости проектов Visual Studio

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

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

Ответ 1

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

Их веб-сайт:

http://ndepend.com

Ответ 2

Мне нужно было что-то подобное, но я не хотел платить (или устанавливать) инструмент для этого. Я создал быстрый скрипт 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"

Ответ 3

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

Версия ReSharper < 8 имеет Внутренняя функция, чтобы отображать графики зависимостей при использовании программы просмотра yFiles. См. Краткое руководство в нижней части сообщения.

enter image description here

Howto

  • Установите инструмент yEd из здесь.
  • Запустите VS с аргументом командной строки /resharper.internal.
  • Перейдите в ReSharper/Internal/Show Dependencies.
  • Укажите проекты, которые вы хотите включить в "общую картинку".
  • Снимите флажок "Исключить конечные узлы...", если вам это не нужно.
  • Нажмите "Показать".
  • Используйте иерархический макет в yEd (Alt + Shift + H)
  • Обеспечить обратную связь =)

Ответ 4

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

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

Ответ 5

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

Ответ 6

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

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

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

Ответ 7

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

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

https://github.com/smpickett/DependencyViewer

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

Ответ 8

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

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

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

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

Ответ 9

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

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

Ответ 11

Лучшее решение Powershell. Я адаптировал его в bash script, который работает на моей машине (TM):

#!/bin/bash

for i in `find . -type f -iname "*.csproj"`; do
    # get only filename
    project=`basename $i`

    # remove csproj extension
    project=${project%.csproj}

    references=`cat $i | grep '<ProjectReference' | cut -d "\"" -f 2`
    for ref in $references; do
        # keep only filename (assume Windows paths)
        ref=${ref##*\\}

        # remove csproj extension
        ref=${ref%.csproj}

        echo "[ $project ] -> [ $ref ]"
    done

done

Ответ 14

Я проверил все ответы, но ни один из вариантов не удовлетворил меня, поэтому я написал свой собственный инструмент для предварительного просмотра зависимостей проекта.

https://github.com/Audionysos/VSProjectReferencesViewer

Это ранняя стадия, но это сработало для моих нужд :)