I think it depends on what you're going to do with the application. If the project will be shared with other developers I would use one of the structures outlined in the other answers. However if this is a project internal to your organization where you'll have multiple projects and developers, hopefully all sharing the libraries. I would use something like this, where the library contains only DLLs:
- Library
- Project 1
- Project 2
This is a structure we have implemented in our development process. We have multiple projects using different versions of the same library. We can migrate applications to newer versions of the library very easily. This also prevents having seven copies of a DLL in seven different projects.
For our own internally developed libraries the code is stored in the tree under a project with the DLLs being copied to the Library branch. Our projects then reference the release versions.
This structure makes it easy to keep versions of open source libraries in sync (e.g. Hibernate, Fluent NHibernate, and NHibernate Linq).