views:

2128

answers:

2

How would you lay out the directory structure for a large C# solution, consisting of perhaps 20 to 30 projects, mostly C# but some C++? Where do you put external dependencies? When creating a branch in source control, do you branch absolutely everything? Do you override the defaults for where built files go?

+5  A: 

Take a look at the Tree Surgeon CodePlex project.

HTH, Kent

Kent Boogaart
+2  A: 

I'd stick with the normal "directory for the solution, each project in a subdirectory" approach - using a mixture of C# and C++ shouldn't change this.

I like creating a "lib" subdirectory (off the solution directory) and put external dependencies in there, then reference that location from each of the projects. This helps to keep all the versions in sync.

Branch everything, so you can always check out a whole branch and build it to a consistent version.

I generally don't override the defaults for where built files go - it's a lot of hassle - but I have a NAnt (or whatever) script to do the build and then collect the relevant binaries for distribution.

Jon Skeet