Symptoms
In a Microsoft ASP.NET application, when you try to access a localized resource, a System.Resources.MissingManifestResourceException exception may occur, and your Web browser may display an error message that is similar to the following error message:
Server Error in ‘/MyApp’ Application.
Could not find any resources appropriate for the specified culture (or the neutral culture) in the given assembly. Make sure “MyApp.strings.resources” was correctly embedded or linked into assembly “MyApp”. baseName: MyApp.strings locationInfo: <null> resource file name: MyApp.strings.resources assembly: MyApp, Version=VersionNumber, Culture=neutral, PublicKeyToken=null
Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.
Exception Details: System.Resources.MissingManifestResourceException: Could not find any resources appropriate for the specified culture (or the neutral culture) in the given assembly. Make sure “MyApp.strings.resources” was correctly embedded or linked into assembly “MyApp”. baseName: MyApp.strings locationInfo: <null> resource file name: MyApp.strings.resources assembly: MyApp, Version=VersionNumber, Culture=neutral, PublicKeyToken=nullNotesIn the error message, MyApp is a placeholder for the name of your ASP.NET application.In the earlier error information, VersionNumber is a placeholder for the version number of the primary assembly for your application.
Resolution
This problem occurs if you use a localized resource that exists in a satellite assembly that you created by using a .resources file that has an inappropriate file name. This problem typically occurs if you manually create a satellite assembly.
To manually create a satellite assembly, you must first run the Resource File Generator (Resgen.exe), and then you must run the Assembly Linker (Al.exe). When you run Resgen.exe, if you do not specify the file name of the output file while you convert an XML-based resource format (.resx) file to a .resources file, Resgen.exe creates a .resources file that has the same file name as the input file. If the file name of your XML-based resource format file does not start with the namespace name of your application, the file name of the .resources file will not contain this namespace name either. You may run Al.exe to create a satellite assembly that contains the localized resources that exist in the .resources file. However, when you try to access a localized resource that exists in the satellite assembly, the behavior that is mentioned in the “Symptoms” section occurs.