I think it depends on what you are going to do with the application. If the project will be transferred to other developers, I would use one of the structures described in other answers. However, if this is a project built into your organization where you will have several projects and developers, we hope that they will all share libraries. I would use something like this, where the library contains only the DLL:
- Library
- Project 1
- Project 2
This is the structure that we have implemented in our development process. We have several projects using different versions of the same library. We can easily port applications to newer versions of the library. It also prevents the presence of seven copies of the DLL in seven different projects.
For our own internal libraries, the code is stored in a tree within the project with copying DLLs to the library branch. Then our projects refer to release versions.
This structure simplifies the synchronization of open source library versions (such as Hibernate, Fluent NHibernate, and NHibernate Linq).
source share