You may receive a "System.Resources.MissingManifestResourceException" error message when you access the .resources file of the form at run time (318603)
The information in this article applies to:
- Microsoft Visual Basic .NET (2002)
- Microsoft Visual C# .NET (2002)
- Microsoft Visual J# .NET (2003)
- Microsoft Visual J# .NET (2002)
- Microsoft Visual C# .NET (2003)
- Microsoft Visual Basic .NET (2003)
This article was previously published under Q318603 SYMPTOMS When you are running your Visual Basic .NET or Visual Basic 2005, Visual C#
.NET, or Visual J# .NET Windows application, you may receive the following
error message or a similar one when you load a form: An
unhandled exception of type 'System.Resources.MissingManifestResourceException'
occurred in mscorlib.dll
Additional information: Could not find any
resources appropriate for the specified culture (or the neutral culture) in the
given assembly. Make sure "Form1.resources" was correctly embedded or linked
into assembly "myApplication".
baseName: Form1 locationInfo:
WindowsApplication4.Form1 resource file name: Form1.resources assembly:
myApplication, Version=1.0.781.33026, Culture=neutral, PublicKeyToken=null
If you click Break in the error dialog box, and if you are running the code in the
integrated development environment (IDE), you discover that a line of code
inside the InitializeComponent statement causes this problem. For example, if you create the
sample from the "More Information" section, this error occurs in conjunction
with an ImageList control. Although the error message may refer to a different
control, notice that resources.GetObject appears on that line of code in the error message:
this.imageList1.ImageStream =
((System.Windows.Forms.ImageListStreamer)(resources.GetObject("imageList1.ImageStream")));
CAUSE This problem occurs because the Form class is not the first class in the code module of the
form.
Note This article documents one specific cause of this problem. There
may be other situations that can lead to similar results. RESOLUTION To resolve this problem, move all of the other class
definitions so that they appear after the form's class definition.
WORKAROUNDTo work around this problem, change the Resource File Name property of the .resX file of the project. To do this, follow these steps: - Start Visual Studio .NET 2003 or Visual Studio 2005.
- Open the project that contains the localized form class where you receive the error message that is mentioned in the "Symptoms" section.
- In Solution Explorer, expand all folders.
- Right-click Form1.resX, and then click Properties.
- In the Form1.resX Property Pages dialog box, expand Configuration Properties, and then click General under Managed Resources.
- Change the Resource File Name property from $(IntDir)/ <placeholder> .Form1.resources to $(IntDir)/ <placeholder> . MyForm .resources, and then click OK.
Note MyForm is a placeholder for the class name of the form class that you localized. - Press CTRL+SHIFT+S to save the project. Press CTRL+SHIFT+B to build the solution.
For more information, click the following article number to view the article in the Microsoft Knowledge Base:
824495
FIX: You receive a "MissingManifestResourceException" error message when you add a linked resource in Visual Studio .NET 2003
- Press F5 to run the application. The application runs, and the Form1 form is displayed.
. STATUSThis
behavior is by design.
Modification Type: | Major | Last Reviewed: | 1/26/2006 |
---|
Keywords: | kbvs2005applies kbvs2005swept kbprb KB318603 |
---|
|