VSGraph is a tool that generates graphs showing the structure of your Visual Studio solutions. In order to handle some of the complexities that can appear in your solution, VSGraph has some options to simplify the final diagram.
By default, each of the dependency edges shown on the graph is drawn separately. This gives maximum detail, but at the
cost of some business in the diagram. The
--merge-edges option will merge arrows leaving or departing from the same
node at similar locations.
Here are two diagrams for the same project, the first without
And the second with
Remove Transitive Dependencies
One way to simplify a graph is by removing edges - if the edges you remove have little informational value, so much the better.
--remove-transitive-dependencies removes edges from your diagram according to the following rule:
If node A references nodes B and C
and node B references node C
then remove the reference from A to C
This rule can dramatically simplify the generated diagram - compare this image with others for the same project shown above:
In large projects, the sheer number of referenced framework assemblies can introduce a high level of noise into the generated diagram.
--hide-assemblies allows you to select assemblies that won’t be shown on the final diagram.
Simplest use is to name the assembly to hide:
Or, you can specify a straightforward wildcard to hide all System.* assemblies:
If you want to hide both System.* and Microsoft.* you can do so as separate groups:
--hide-assemblies System.* --hide-assemblies Microsoft.*
Alternatively, you can give multiple wildcards in one go - just separate them with a semicolon (