I have a multi-project solution. There are two projects in the same namespace, one created by me, and the other created by this opensource software.

Both of the projects are set to output class library. However, I can use the opensource's class in my code, but I can not use the class created by me. (Both of them are public classes, in fact... there isnt much difference except a couple of hardcoded strings.)

I must be missing something really simple?

Both projects are "loaded" in the solution, and I am using sourcecontrol.

Sounds to me like you have a circular reference issue. With libraries you cannot link them to eachother, ie:

You can call the open source proj from your proj
You can call your proj from the open source proj

You cannot call both ways though -- because that creates an issue similar to the chicken or egg. If you can't compile assembly B until you have compiled A, but you cannot compile A until you have compiled B then you're stuck.

If you have 3 assemblies and are linking your two assemblies to a separate third assembly then ignore everything I just said and please state your situation more clearly.

Also -- The fact that an assembly is part of a solution is convenient for debugging but doesn't matter when it comes to calling routines from other assemblies. You still have to add a reference to the project.