Hi, thanks for posting!
This is technically a resource co-location assumption - see
http://www.ncrunch.net/documentation/considerations-and-constraints_assembly-colocation-assumptions.
Using the 'Copy referenced assemblies to workspace' setting likely won't work here if the B.xml file is generated with a custom build step, as there is nothing telling NCrunch that it should be copied to the build output directories of referencing projects.
Adding B.xml as an additional file also won't work well, as this creates a dependency that exists outside your build system, making NCrunch dependent on your foreground build (which you really don't want).
There are two effective ways to solve this:
1. Engineer the test to copy B.xml from the build output directory of project A into the build output directory of project B.
2. Introduce an abstraction that allows your test to control how the B.xml file is resolved, so that it can override this logic and load the file from an alternative location.