Ok I got this annoying error today and “a” DID contain a definition for “b”.
I got into this mess after opening the solution in VS2012 and then opening it VS2010.
Turns out by deleting the reference DLL in the affected projectedproject, building the reference DLL project, then re-referencing allowed VS to see the definition.