I've had this before, you have Project A which refernces Project B, but Project B cannot reference Project A because that would create a circular reference. What I have done in the past is use normal direct methods from Project A to act on Project B, but define events in Project B that your code in Project A can subscribe to and then handle. Depends on exactly what you are trying to do, but I've used this where a form from Project B is launched from project A, but that from has a button that will launch a form in Project A. So I added an event to Project B's form, that I subscribe to that while launching the form from Project A, when the event gets fired by Project B the code in project A can launch the correct form.
All in all a good workaround, but if you are doing this, in may mean your projects are not organized very well, and you should consider re-factoring your code.