When you look at the schema for a SharePoint solution file, you will find a node called ApplicationResourceFiles. I don’t know exactly what it does, because, when you use this node in your solution manifest, it will copy the file to a folder called "resources" in your web-directory. I didn’t find a way to use the resource file from this place.

To use a resource file from your web pages, the resx-file needs to be in the App_GlobalResources-directory of your web application. When a new web application is created in SharePoint, the content of the CONFIG\Resources-directory is copied into the App_GlobalResources directory of the new web application. So, all you need to do is, deploy your resource-files to the CONFIG\Resources-directory.

But, what to do with already existing web applications? The answer is STSADM -o copyappbincontent. This operation will copy the content of the CONFIG\Resources-directory to the App_GlobalResources-directory of the web application. But, be careful:

1. This is a one-way operation. It will copy from the CONFIG\Resources-directory, but it will not remove files from the App_GlobalResources-directory, that are removed from the CONFIG\Resources-directory.

2. If you have a farm with more than one web front end, you need to run the copyappbincontent-operation on each of your web front ends.

In Mikhail Dikov’s blog you can find a description, how to use a timer job and a feature receiver, to copy the resource files to the App_GlobalResources-directory.