Which rules does VS (msbuild?) follow during solution build? In which cases it will copy indirectly referenced asemblies to output folder and in which not?
It should copy all the recursive references. For example:
--- EDIT---
The rules (at least in VS2010) seem to be as follows:
So, if you want to ensure that the assembly required for reflection is deployed, reference it from the root project.
Reflection concerns aside, it seems to be enough to just add the minimal set of references at each level of project hierarchy.