In the vein of "getting started," the question came up today about how to access shared binary tools like NUnit or NAnt. I'd say that the best practice is to have all the binary dependencies checked into your source control repository and use those copies of the tools (operating systems & database servers obviously don't apply). Don't depend on a GAC-ed copy of NUnit or NAnt.
WHY?
One of the tenets of a Continuous Integration strategy is a single, authoritative source repository for the application, including binary dependencies. There are two end goals:
- Know exactly which versions of what (NUnit, NAnt, NHibernate, NEtc.) your code depends on
- Be able to walk up to a clean machine, checkout the code tree, run the automated build, and voila — you're ready to go. Depending on a GAC-ed copy of NUnit, for example, defeats this goal.