Click here to Skip to main content
15,881,746 members
Articles / Programming Languages / C#
Article

Project dependency graph generator

Rate me:
Please Sign up or sign in to vote.
3.35/5 (9 votes)
26 Sep 2004Public Domain2 min read 135K   2.8K   26   22
Tool for generating project dependency graph in VS 2003.

Sample Output Image

Description

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.

Installation

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

Background

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.

Usage

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.

Project1
#Project2 Here is a comment!
Project3

Conclusion

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! :)

History

September 29 2004 - Initial release.

License

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


Written By
Software Developer (Senior) Deutche Bank
Russian Federation Russian Federation
This member has not yet provided a Biography. Assume it's interesting and varied, and probably something to do with programming.

Comments and Discussions

 
Questiongraph generator in vb Pin
anil4320115-Aug-12 19:00
anil4320115-Aug-12 19:00 
GeneralAlso crashing Pin
JVMFX9-Mar-10 10:17
JVMFX9-Mar-10 10:17 
GeneralSimular tool, but also for visual studio express edition users Pin
JanWilmans20-Jan-10 22:37
JanWilmans20-Jan-10 22:37 
GeneralRe: Simular tool, but also for visual studio express edition users Pin
Aph3x7-Feb-10 23:38
Aph3x7-Feb-10 23:38 
Generalgraphviz tweaks Pin
Greg Domjan30-Sep-09 22:14
Greg Domjan30-Sep-09 22:14 
GeneralAll characters in project names are little squares Pin
Gontrande20-Feb-09 8:00
Gontrande20-Feb-09 8:00 
GeneralRe: All characters in project names are little squares Pin
iLFiS16-Mar-09 11:58
iLFiS16-Mar-09 11:58 
GeneralVS 2008 update Pin
Michael Freidgeim5-Dec-08 13:29
Michael Freidgeim5-Dec-08 13:29 
GeneralVS2005 Update Pin
Kurnia Kosasi24-Sep-07 7:28
Kurnia Kosasi24-Sep-07 7:28 
GeneralOutput in SVG Pin
AgeKay10-Oct-04 0:14
AgeKay10-Oct-04 0:14 
GeneralRe: Output in SVG Pin
Greg Domjan30-Sep-09 22:19
Greg Domjan30-Sep-09 22:19 
Generalcrash at proc start Pin
User 1721656-Oct-04 1:09
User 1721656-Oct-04 1:09 
GeneralRe: crash at proc start Pin
User 1721656-Oct-04 2:29
User 1721656-Oct-04 2:29 
GeneralGraphViz vs. Netron Pin
[Gone]4-Oct-04 20:36
[Gone]4-Oct-04 20:36 
GeneralRe: GraphViz vs. Netron Pin
izz22-May-05 22:16
izz22-May-05 22:16 
GeneralRe: GraphViz vs. Netron Pin
[Gone]23-May-05 0:13
[Gone]23-May-05 0:13 
GeneralRe: GraphViz vs. Netron Pin
izz31-May-05 4:33
izz31-May-05 4:33 
GeneralCrash Pin
zoomba27-Sep-04 6:09
zoomba27-Sep-04 6:09 
GeneralRe: Crash Pin
Matthew Hayhurst27-Sep-04 7:09
Matthew Hayhurst27-Sep-04 7:09 
GeneralRe: Crash Pin
gameweld5-Nov-04 9:01
gameweld5-Nov-04 9:01 
Generalnice utility Pin
Salty Dog27-Sep-04 4:19
Salty 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.