Click here to Skip to main content
Click here to Skip to main content

Project dependency graph generator

, 26 Sep 2004 Public Domain
Rate this:
Please Sign up or sign in to vote.
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 Smile | :) . 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!") Smile | :) .

Points of Interest

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

History

September 29 2004 - Initial release.

License

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

Share

About the Author

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

Comments and Discussions

 
Questiongraph generator in vb Pinmemberanil4320115-Aug-12 20:00 
GeneralAlso crashing PinmemberJVMFX9-Mar-10 11:17 
GeneralSimular tool, but also for visual studio express edition users Pinmemberjan wilmans20-Jan-10 23:37 
GeneralRe: Simular tool, but also for visual studio express edition users PinmemberAph3x8-Feb-10 0:38 
Generalgraphviz tweaks PinmemberGreg Domjan30-Sep-09 23:14 
GeneralAll characters in project names are little squares PinmemberGontrande20-Feb-09 9:00 
GeneralRe: All characters in project names are little squares PinmemberiLFiS16-Mar-09 12:58 
GeneralVS 2008 update PinmemberMichael Freidgeim5-Dec-08 14:29 
GeneralVS2005 Update PinmemberKurnia Kosasi24-Sep-07 8:28 
GeneralOutput in SVG PinmemberAgeKay10-Oct-04 1:14 
GeneralRe: Output in SVG PinmemberGreg Domjan30-Sep-09 23:19 
Generalcrash at proc start Pinmembergn47116-Oct-04 2:09 
GeneralRe: crash at proc start Pinmembergn47116-Oct-04 3:29 
GeneralGraphViz vs. Netron PinmemberNetronProject4-Oct-04 21:36 
GeneralRe: GraphViz vs. Netron Pinmemberizz22-May-05 23:16 
GeneralRe: GraphViz vs. Netron PinmemberNetronProject23-May-05 1:13 
GeneralRe: GraphViz vs. Netron Pinmemberizz31-May-05 5:33 
GeneralCrash Pinmemberzoomba27-Sep-04 7:09 
GeneralRe: Crash PinmemberMatthew Hayhurst27-Sep-04 8:09 
GeneralRe: Crash Pinmembergameweld5-Nov-04 10:01 
Generalnice utility PinmemberSalty Dog27-Sep-04 5:19 

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

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

| Advertise | Privacy | Terms of Use | Mobile
Web01 | 2.8.141223.1 | Last Updated 27 Sep 2004
Article Copyright 2004 by iLFiS
Everything else Copyright © CodeProject, 1999-2014
Layout: fixed | fluid