System.Resources.MissingManifestResourceException: Could not find any resources appropriate for the specified culture or the neutral culture. Make sure "controller.Form1.resources" was correctly embedded or linked into assembly "controller" at compile time, or that all the satellite assemblies required are loadable and fully signed.
It turned out that the code was looking for resources named "
controller.XXX.resources
" whereas ResGen was creating them "XXX.resources
". The solution was to use the RootNamespace element in the MSBuild file, i.e.
<PropertyGroup>
<RootNamespace>controller</RootNamespace>
</PropertyGroup>