At work we use file references and compile all of our code into the one location.   One of the problems was that if you where working on more than one project at a time, the dll would locked by Visual Studio.    Well after a bit of work we have come up with a solution..

What you need to do:

    Make sure the output path of the all the assemblies are pointing to their default local bin/Debug or Release folders.

    Add a post build event to copy $(TargetName).* to the bin directory which is where all other projects will reference this assembly.

      e.g. copy $(TargetName).* ..\..\..\bin\

    You can then build all assemblies within the solution without any locks on dll’s

    To get the latest version of a dll that was just built, you may need to just click refresh on the references of the project.