We are starting a new SOA project with a lot of shared .net assemblies. The code for these assemblies will be stored in SVN.

In development phase, we would like to be able to code these assemblies as an entire solution with as little SVN 'friction' as possible. 

When the project enters more of a maintenance mode, the assemblies will be maintained on an individual level.

Without making Branching, Tagging, and Automated Builds a maintenance nightmare, what's the best way to organize these libraries in SVN that also works well with the VS 2008 IDE?

Do you setup Trunk/Branches/Tags at each library level and try to spaghetti it all together somehow at compile time, or is it better to keep it all as one big project with code replicated here and there for simplicity? Is there a solution using externs?