Search code examples
c#assembliesorganization

Best practices for where to store assemblies?


I'm looking for some guidance where to store assemblies. This is how our source tree looks like at the moment:

ProjectName
trunk
|--------src (source code)
|--------lib (assemblies needed by every project e.g. NUnit framework, svn external)
|--------tools (tools needed by every project e.g. NUnit executable, svn external)
|--------ThirdPartyAssemblies (project specific assemblies, e.g. log4net)

We've moved some code to a library of our own which is called Utils.dll.

I'm now wondering where to put this library (literally a good name for the folder) and furthermore other libraries that we write in the future.

ThirdPartyAssemblies does not seem like the right place (since it's not from a third party), nor does lib since the assemblies are not needed by every project we create.


Solution

  • Well you could certainly create a "FirstPartyAssemblies" directory if you needed to - but do you definitely need to "store" these assemblies in the first place? Do they come from a different solution? Can you not just use several projects in the same solution, and let VS pull the assemblies in appropriately? You don't have to have all the projects in the same source hierarchy, of course.

    Now in many cases you will want to store the assembly - and potentially version it separately etc - but if you can get away without doing so, it'll possibly make your life easier. It really depends on your situation though.