Ответ 1
Вы пробовали NDepend? Он покажет вам зависимости, и вы также сможете проанализировать удобство использования ваших классов и методов.
Их веб-сайт:
В настоящее время я переношу большое решение (~ 70 проектов) из VS 2005 +.NET 2.0 в VS 2008 +.NET 3.5. В настоящее время у меня есть VS 2008 +.NET 2.0.
Проблема в том, что мне нужно переместить проекты по очереди в новую платформу .NET, чтобы проект .NET 2.0 не ссылался на проект .NET 3.5. Есть ли какой-нибудь инструмент, который бы дал мне хороший график зависимостей проекта?
Вы пробовали NDepend? Он покажет вам зависимости, и вы также сможете проанализировать удобство использования ваших классов и методов.
Их веб-сайт:
Мне нужно было что-то подобное, но я не хотел платить (или устанавливать) инструмент для этого. Я создал быстрый скрипт 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"
Обновление: ReSharper с версии 8 имеет встроенную функцию 'Просмотр зависимостей проекта.
Версия ReSharper < 8 имеет Внутренняя функция, чтобы отображать графики зависимостей при использовании программы просмотра yFiles. См. Краткое руководство в нижней части сообщения.
Howto
Вы можете легко получить графический график зависимостей проекта, используя Visual Studio 2010 Ultimate, сканирование до 5 минут на это видео, чтобы увидеть, как: http://www.lovettsoftware.com/blogengine.net/post/2010/05/27/Architecture-Explorer.aspx
В Visual Studio 2010 Ultimate: Архитектура | Создать график зависимости | Сборка.
Я написал инструмент, который может вам помочь. VS Solution Dependency Visualizer анализирует зависимости проектов в рамках решения и создает диаграмму зависимостей из этой информации, а также текстовый отчет.
Вы можете создать граф зависимостей ваших проектов в 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
У меня была похожая проблема, но она была еще более сложной, потому что несколько проектов ссылались на разные версии одной и той же сборки.
Чтобы получить вывод, включающий информацию о версии и проверки на возможные проблемы с загрузкой сборки во время выполнения, я сделал этот инструмент:
https://github.com/smpickett/DependencyViewer
(прямая ссылка на релиз github: https://github.com/smpickett/DependencyViewer/releases)
Чтобы завершить ответ ericwan на графиках, созданных NDepend, см. скриншоты ниже. Вы можете загрузить и использовать бесплатную пробную версию NDepend на некоторое время.
Подробнее о графике зависимости NDepend
Подробнее о матрице зависимостей NDepend:
Отказ от ответственности: я являюсь частью команды инструментов
Если вам просто нужен граф зависимостей, который я нашел, это один из самых чистых способов его получения:
Вы можете создать хороший график ссылок в ваших проектах. Я описал способ, которым я это сделал в своем блоге http://www.mellekoning.nl/index.php/2010/03/11/project-references-in-ddd/
Лучшее решение 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
Я создал небольшой проект С#, используя YUML в качестве вывода.. код можно найти здесь:
https://github.com/twistedtwig/DotnetProjectDependencyGraphs
VS 2019 переименовал модуль графа зависимостей в Code Code
вот официальная документация: https://docs.microsoft.com/en-us/visualstudio/modeling/map-dependencies-across-your-solutions?view=vs-2019
Я проверил все ответы, но ни один из вариантов не удовлетворил меня, поэтому я написал свой собственный инструмент для предварительного просмотра зависимостей проекта.
https://github.com/Audionysos/VSProjectReferencesViewer
Это ранняя стадия, но это сработало для моих нужд :)