Dependency graph of Visual Studio projects
Solution 1:
I needed something similar, but didn't want to pay for (or install) a tool to do it. I created a quick PowerShell script that goes through the project references and spits them out in a yuml.me friendly-format instead:
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"
Solution 2:
Update: ReSharper since version 8 has built-in 'View Project Dependencies' feature.
ReSharper version prior to 8 has Internal feature to show dependency graphs in using yFiles viewer. See quick manual in the bottom of the post.
Howto
- Install yEd tool from here.
- Run VS with /resharper.internal command line argument.
- Go to ReSharper/Internal/Show Dependencies.
- Specify projects that you want to include to the 'big picture'.
- Uncheck 'Exclude terminal nodes...' unless you need it.
- Press 'Show'.
- Use hierarchical layout in yEd (Alt+Shift+H)
- Provide feedback =)