Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Best Practice: Collaborative Environment, Bin Directory, SVN

What are the best practices for checking in BIN directories in a collaborative development environment using SVN? Should project level references be excluded from checkin? Is it easier to just add all bin directories?

I develop a lot of DotNetNuke sites and it seems that in a multi-developer environment, it's always a huge task to get the environment setup correctly.

The ultimate goal (of course) is to have a new developer checkout the trunk from SVN, restore the DNN database and have it all just 'work'...

like image 499
Ryan Eastabrook Avatar asked Aug 01 '08 23:08

Ryan Eastabrook


1 Answers

Any assemblies that are expected to be in the GAC should stay in the GAC. This includes System.web.dll or any other 3rd party dll that you'll deploy to the GAC in production. This means a new developer would have to install these assemblies.

All other 3rd party assemblies should be references through a relative path. My typical structure is:

-Project --Project.sln --References ---StructureMap.dll ---NUnit.dll ---System.Web.Mvc.dll --Project.Web ---Project.Web.Proj ---Project.Web.Proj files --Project ---Project.Proj ---Project.Proj files 

Project.Web and Project reference the assemblies in the root/References folder relatively. These .dlls are checked into subversion.

Aside from that, */bin */bin/* obj should be in your global ignore path.

With this setup, all references to assemblies are either through the GAC (so should work across all computers), or relative to each project within your solution.

like image 180
Karl Seguin Avatar answered Oct 05 '22 23:10

Karl Seguin