Click here to Skip to main content
14,663,980 members
Articles » Web Development » Trace and Logs » Debug and Tracing
Posted 26 Sep 2004


26 bookmarked

Project dependency graph generator

Rate this:
3.35 (9 votes)
Please Sign up or sign in to vote.
3.35 (9 votes)
26 Sep 2004Public Domain
Tool for generating project dependency graph in VS 2003.

Sample Output Image


DepGraph is a tool which generates a PNG image showing a build dependency graph of a project in Visual Studio. Is uses the graphviz tools from here. The picture above shows the generated dependency graph of one of my solutions. It uses the similar ideas as in Dependency-Grapher for C++ Projects by SteveKing.


  1. Install graphviz from here.
  2. Copy compiled executable to some folder.
  3. Enjoy to use!


I have developed a large program in C++, in command of many developers. These people produce too many modules, which realize different functionality. Many modules (usually Static C++ or Dynamic libraries) use other modules. For compiling the result, it is necessary to set the correct build dependencies. The problem is that VS has a trouble with incorrect or ring dependencies. It results in producing too many warning messages about symbols' multiple definition. Some amount of these messages can appreciably increase compile time. And more over, incorrect dependencies can crash the linker to internal error! Controlling and supporting dependencies by hands is difficult. This tool will help you (I hope) to solve your problems in solutions with many-many separate projects. And will provide some information about the cause of troubles, if you meet them.


To use this tool, make the following:

  1. Run Visual Studio.
  2. Open solution whose project dependencies you want to display.
  3. Just run the tool without any parameters.

Program makes the following:

  1. Determines that Visual Studio is running.
  2. Determines which solution is currently open in VS, and directory where sln file is located.
  3. Generates a Build dependency graph in the same directory as the sln file. Name of this file will be solution_dep.png.

Please note that the picture files may become really huge for solutions with many projects!

Note: In the same directory as the solution file can be a file with name depExcl.txt. In this file, you can specify names of the project (one per line, case insensitive) dependencies which must not be displayed. It's useful for frequently used projects, from which depends many other projects, for entity link decrease. Projects listed in this file will be displayed on the diagram in a different color. (See project versionInfo on picture above.) This file can contain comments (lines beginning aith '#'). Here is an example of depExcl.txt.

#Project2 Here is a comment!


There are a lot of improvements possible like a better ordering of the dependency graph and the like. Some of you might find the colors awful - feel free to change that :). Also, I think it's a good idea to make this tool as a plug-in for Visual Studio. I you find some mistakes - please do not beat me with rocks, it is my second C# program (first of it is "Hello world!") :).

Points of Interest

Ho! I like to listen to Metal music while coding! :)


September 29 2004 - Initial release.


This article, along with any associated source code and files, is licensed under A Public Domain dedication


About the Author

Software Developer (Senior) Deutche Bank
Russian Federation Russian Federation
No Biography provided

Comments and Discussions

Questiongraph generator in vb Pin
anil4320115-Aug-12 19:00
Memberanil4320115-Aug-12 19:00 
GeneralAlso crashing Pin
JVMFX9-Mar-10 10:17
MemberJVMFX9-Mar-10 10:17 
GeneralSimular tool, but also for visual studio express edition users Pin
jan wilmans20-Jan-10 22:37
Memberjan wilmans20-Jan-10 22:37 
GeneralRe: Simular tool, but also for visual studio express edition users Pin
Aph3x7-Feb-10 23:38
MemberAph3x7-Feb-10 23:38 
Generalgraphviz tweaks Pin
Greg Domjan30-Sep-09 22:14
MemberGreg Domjan30-Sep-09 22:14 
GeneralAll characters in project names are little squares Pin
Gontrande20-Feb-09 8:00
MemberGontrande20-Feb-09 8:00 
GeneralRe: All characters in project names are little squares Pin
iLFiS16-Mar-09 11:58
MemberiLFiS16-Mar-09 11:58 
GeneralVS 2008 update Pin
Michael Freidgeim5-Dec-08 13:29
MemberMichael Freidgeim5-Dec-08 13:29 
GeneralVS2005 Update Pin
Kurnia Kosasi24-Sep-07 7:28
MemberKurnia Kosasi24-Sep-07 7:28 
GeneralOutput in SVG Pin
AgeKay10-Oct-04 0:14
MemberAgeKay10-Oct-04 0:14 
GeneralRe: Output in SVG Pin
Greg Domjan30-Sep-09 22:19
MemberGreg Domjan30-Sep-09 22:19 
Generalcrash at proc start Pin
gn47116-Oct-04 1:09
Membergn47116-Oct-04 1:09 
GeneralRe: crash at proc start Pin
gn47116-Oct-04 2:29
Membergn47116-Oct-04 2:29 
GeneralGraphViz vs. Netron Pin
[Gone]4-Oct-04 20:36
Member[Gone]4-Oct-04 20:36 
GeneralRe: GraphViz vs. Netron Pin
izz22-May-05 22:16
Memberizz22-May-05 22:16 
GeneralRe: GraphViz vs. Netron Pin
[Gone]23-May-05 0:13
Member[Gone]23-May-05 0:13 
GeneralRe: GraphViz vs. Netron Pin
izz31-May-05 4:33
Memberizz31-May-05 4:33 
GeneralCrash Pin
zoomba27-Sep-04 6:09
Memberzoomba27-Sep-04 6:09 
GeneralRe: Crash Pin
Matthew Hayhurst27-Sep-04 7:09
MemberMatthew Hayhurst27-Sep-04 7:09 
GeneralRe: Crash Pin
gameweld5-Nov-04 9:01
Membergameweld5-Nov-04 9:01 
Generalnice utility Pin
Salty Dog27-Sep-04 4:19
MemberSalty Dog27-Sep-04 4:19 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.