In my last post I described a problem I had with localized resources in an asp.net site. Investigating another side of the matter I found out what really went wrong with my resources. Here's the real gotcha:
When you add a resource file to a project it is assigned a custom tool:
Now what the custom tool is depends on the location the resource file is created. Adding the resource to the App_GlobalResources folder it will be GlobalResourceProxyGenerator. With this tool the resources do work right both in markup and in code. Adding it to the project root the tool will be ResXFileCodeGenerator. This tool will result in the MissingManifestResourceException. Moving the resource around in the project does not change the custom tool. Having changed the tool setting by hand my site now completely works as expected.