Hi Mike,
We had this problem too (assuming I understood the problem correctly).
Our application has one main namespace shared between all projects and all of our projects included a Resource collection.
This caused a problem when calling the namespace.Properties.Resources actually refered to an isolated scope of the resources collection for each project, although it's supposed to be one big namespace resource collection.
The solution was actually pretty straight forward - just deleted all project's resource file except the one in the base project.
After doing that, all calls to namespace.Properties.Resources refered to the base Resource collection so we could save all our resource images in the base project.
We did, however, find that sometimes the visual studio form designer fails to load the images and claims that the resource collection does not contain the image (although the project builds just fine), I guess the designer looks for the images in the project's resource collection.
A second thing we did is to add a resource manager in the base project that holds a property for each image in the resource so that we can access them anywhere in our solution without having to use the Properties.Resource collection directly and then just set the buttons image in the UI.Form constructor after the InitializeComponents method is called. this approach has the disadvantage that the designer does not show the image on design time, but it helps keeping just one instance of the image.
Something like this:
public abstract class ResourceProvider
{
public static Image Attachments
{
get { return Properties.Resources.Attachment; }
}
}
I guess there are some other, more common practices out there, but this works for us for the mean time.
Hope this helps...
Zohar