Thursday, June 10, 2004

MissingManifestResourceException

What a pain in the butt! I was working on getting the IMF Archive Manager working for globalization when I suddenly ran into this. I have two forms, main and report. The main report I took care of without a hitch, but as soon as I turned localization = true on the report form, the app would throw a MissingManifestResourceException when it loaded.

There were several articles that I read that could cause this problem, but none of them offered a solution or the solution didn't apply. After some digging I realized that my main form resource file was being generated as Microsoft.Exchange.Tools.IMFArchiveManger.frmMain.resources where my report form was being generated as IMFFilterManger.Report.resources.

The fix was as simple as going into the project settings and changing the default namespace from IMFFilterManager to Microsoft.Exchange.Tools.IMFArchiveManager and then suddenly everything started working.

God I hate dumb things like that! :P

39 Comments:

At 10:08 AM, May 02, 2005, Anonymous Anonymous said...

gee, thanks. i just had the same problem :)
in my case, i changed the namespace (a c# project) and suddenly got this exception. changing the default namespace in the project properties solved it.

 
At 6:35 AM, June 10, 2005, Anonymous Anonymous said...

Yep - I too had the same problem and much problems tracking down the cause. Not much help from Microsoft. My problem was that I changed my namespace for the form class from, say, blahLib to xyz.blahLib. Unfortunately the time lapse between when I did this and next compiled was sufficient for me not to remember everything I had done in the session. And the error message does not help if you have done absolutely nothing related to resources.

Dspite much searching on the internet your reply here is the only one I have found which details the solution - So many thanks.

 
At 6:57 AM, June 24, 2005, Anonymous Anonymous said...

I just came accross the same issue, and wanted to share my scenario: I added a web service reference to my project and when VS.Net generates the stub class it places it under '[Project's Default Namespace].[My WebService Reference Name]', therefore at this point I noticed that my [Project's Default Namespace] was not the appropriate place on our framework where I wanted this stub class to reside. Therefore I changed the project's default namespace in order to have the web service stub in the correct namespace, on off it goes the bug! a couple of hours my dev teammates had refreshed the project and nobody can run the solution anymore: Because the stupid resources got moved to the new default's namespace and wherever in the code we tried to get them through the ResourceManager we got the MissingManifestResourceException exception.
After a couple of hours fighting with the resources I came accross this post, and when I read "changing the default namespace" it clicked that I had done that earlier.
Pete's comment is most appropriate "Why on earth have Microsoft not provided a namespace property for the resource file?" !!!!!
I hope they add this on VS.Net 05/.Net 2.0.
Thanks for the post.

 
At 8:09 AM, August 18, 2005, Blogger Tim Macfarlane said...

Yeah I had this MissingManifestResourceException too, it was compiling the resources into a file with the wrong namespace. Damned weird! I managed to narrow the cause down to the declaration of a delegate. I normally put delegates at the top of the file (just underneath the namespace decl), but I had to put this delegate at the bottom of the file (below the class) for it to compile the resources properly. Definitly a bug! I'll try out your suggestion, maybe then I can replace my delegate back to the top of the file...

 
At 7:17 PM, August 18, 2005, Anonymous Anonymous said...

I had the same thing as Timbo, except with a public enum listed above the class definition. Moved it below and it worked fine...crazy!

 
At 6:42 AM, November 19, 2005, Anonymous Anonymous said...

I had a similar problem with a user control. I eventually found that after I removed the control from the project and added it again, the picture objects for my picture boxes were missing "reporting an error in the properties window". After adding the Initial Image back to the property, the problem went away. Just thought someone might want to know another variation of the cause of this type of problem.

 
At 11:05 AM, May 02, 2006, Blogger Richard said...

This happened to me after I moved a User Control into a folder called "UserControls" off from my main project folder.

Moving it back to the same folder as my project file "fixed" the issue...

 
At 8:24 PM, May 10, 2006, Anonymous Anonymous said...

I had the same issue as Timbo (public enums ahead of classes). Thank you for all the posts. It saved me hours of pain...

 
At 10:32 AM, May 30, 2006, Anonymous Anonymous said...

I had the same problem but with a slightly different resolution.

The cause of my problem was again the namespace change, but my project default namespace was correct. I had to remove all design time icons set on buttons (and on the form) and then re-add them. Nice.

Still, worked though :-)

 
At 7:34 AM, June 27, 2006, Anonymous Anonymous said...

Thank you. Shame this isn't in MSDN.

 
At 11:05 AM, August 15, 2006, Anonymous Anonymous said...

Any class, enum, or struct that is declared above the UserControl will result in this MissingManifestResourceException. I also tried a seperate namespace block, but that resulted in the exception, too. This happens in C#, but not in managed C++, where one can declare anything they want above the control.

exception-producing code...
namespace ns
{
public class A
{
...
}
public class B : UserControl
{
...
}
}

proper code...
namespace ns
{
public class B : UserControl
{
...
}
public class A
{
...
}
}

 
At 11:25 AM, August 16, 2006, Anonymous Anonymous said...

Truly amazing! I've been fighting this baloney for two weeks. "Googling" and sifting through the online chaff.

I can't fraken believe that MS doesn't have a simple how to for VS.NET 2003. Sure they made it easier for VS.NET 2005.

I've been getting this message:
System.Resources.MissingManifestResourceException: Could not find any resources appropriate for the specified culture (or the neutral culture) in the given assembly. Make sure "com.company.division.application.components.module.business.resources.ModuleBusinessResources.resources" was correctly embedded or linked into assembly "ModuleBusiness".
baseName: com.company.division.application.components.module.business.resources.ModuleBusinessResources locationInfo: null resource file name: com.company.division.application.components.module.business.resources.ModuleBusinessResources.resources assembly: ModuleBusiness, Version=2007.14.1.0, Culture=neutral, PublicKeyToken=null

My default project namespace was: com.company.division.application.components.module.business

Following all the postings above, I added .resources onto the end and BINGO!

What bunch of malarkey.

Many thanks to the lot of you. "may the sun shine upon your fields, and the wind be at your back."

 
At 10:15 AM, August 30, 2006, Anonymous Anonymous said...

Thanks, that saved a lot of time.

 
At 2:12 AM, September 04, 2006, Anonymous Anonymous said...

Thanks !

I've run into this twice, after changing the project's namespace ...

The first time, I finally resolved to making another vcproj from scratch ... Thanks to your post it was a lot quicker the second time !

 
At 5:12 AM, September 25, 2006, Anonymous Anonymous said...

Just had that same message with yet another slightly different cure to the problem:

VS2003 VB.NET WinForms App converted to VS 2005. After that, 3 out of 4 Forms load without problems, the fourth one fails with MissingManifestResourceException. All forms are located in the same namespace.

Turns out that the failing form has two unrelated class definitions in the source file, first one being the form, second one a data class.

Moving the data class in a separate file fixed the problem.

This is weired.

 
At 11:59 PM, September 28, 2006, Anonymous Anonymous said...

it worked man
after reading forums for 2 days i found this one and changed my root namespace to the project name then it worked fine

thanks a lot to u all guys

yeah this is really weired

 
At 7:45 AM, October 18, 2006, Anonymous Anonymous said...

I also ran into this problem when I added an EventHandler delegate and an EventArgs-derived class to the top of my UserControl-derived C# class. The problem occurred because I added them at the top of the file above the UserControl. Moving them to the bottom of the file below the UserControl fixed the problem.

 
At 4:39 AM, October 22, 2006, Anonymous Anonymous said...

Thanks a lot! had the same problem, and solved it thanks to your article!

 
At 4:28 PM, December 07, 2006, Anonymous Anonymous said...

I ran into this problem another way. I had an existing project with 8 files. I had deleted the files in windows explorer and then copied older files that had the same content but different file names. I renamed the files and the built the project with no errors. When I went to run the project, I received the MissingManifestResourceException error. The solution was to go into Solution Explorer (no pun intended) and "right click -> View Designer" for each file. This recreated the resource files and subsequently the project ran successfully.

 
At 3:59 PM, April 02, 2007, Anonymous Anonymous said...

Ditto. My issue was a public class that was used by my UserControl, that I realized later I needed in a different file (same namespace). For some reason I decided to put the public class above my UserControl. Everything looked great until this error. In the end, since this class was used by multiple files within the name space I just moved it into its own file and problem was solved.

 
At 12:37 PM, May 04, 2007, Anonymous Anonymous said...

THANK YOU!!!!

 
At 7:53 AM, June 28, 2007, Anonymous Anonymous said...

Worked for me. My resource "consumer" was in a different namespace to my .Designer.resx file. I put both in the same namespace and the error went away.

Thanks

 
At 4:48 AM, July 11, 2007, Blogger Unknown said...

This comment has been removed by the author.

 
At 1:16 AM, August 08, 2007, Anonymous Anonymous said...

Thank you very much, that resolved my problem!

 
At 10:45 AM, January 18, 2008, Anonymous Anonymous said...

Well, three and a half years later, this is still helping people. I created a new project, copied a set of controls over to create a new usercontrol and then ran into this. I realized that the problem related to using an image on a button. After spending a half day mucking with msdn, recreating the user control from scratch, etc, I did a google search and found this. Solved it in about another 30 seconds!

Thanks!!!

 
At 6:13 AM, February 19, 2008, Anonymous Anonymous said...

This resolved my problem too!
Was tired trying all wierd things...

 
At 8:05 AM, April 24, 2008, Anonymous Anonymous said...

Well, In VS2008 pro, Microsoft still seems to be having this problem.

After reading all of these posts I figured out one thing. If you move the resoureces file into a different folder, it's namespace is changed. For mine, I had a resourece file called lang.resx, then when I moved it from the normal namespace to my Localization_folder file folder in the VS2008 ide, it changed the namespace of the lang.resx to [default namespace].Localization_folder. Thsi of course caused my problem.

All I had to do was change the namespace listed in the ResourceManager constructor to match the one I found in the lang.Designer file.

Simple, isn't it, and that was 1 week of hell, lol.

Thanks!

 
At 5:14 AM, May 23, 2008, Anonymous Anonymous said...

Just had the same issue my self after changing the Root Namespace of a project.

Fixed it by fully qualifing the baseName when instantiating the resource manager object.

Thanks for your posts everyone

 
At 3:44 PM, October 29, 2008, Anonymous Anonymous said...

Many thanks!

This solved my problem too. Fortunately this was the first link I came across about the weird exception and your fix worked like a charm. :)

 
At 12:43 AM, November 20, 2008, Anonymous Anonymous said...

excuse me...... i don't understand well how to change the namespace....

this is my situation: i need to work with a windows mobile 6 MYSQL app.
in order to use mysql i use a dll named Mysql.data.cf (for compact framework)
i add a reference to my project...
the problem is whei i try to open the db.....withh conn.open() command... here the app crash and tell me the famous MissingManifestResource .....

it seem that this error is related at dll and not at my prog directly....

i have SmartDeviceProject1 under namespace. and assembly name is PALMARE.

what to do?

 
At 9:51 AM, February 03, 2009, Anonymous Anonymous said...

Changing the project namespace or using a full namespace is just a partial workaround. Just delete the .resx and the associated .cs file and re-create it. Hopefully you don't have too many files to add back into the project. This should fix the problem.

 
At 11:42 PM, February 04, 2009, Anonymous Anonymous said...

i am using MySQL Connector Net 5.2.3 and compact framework 2.0
MySqlConnection connection = new MySqlConnection("SERVER=serverip;DATABASE=dbbb;UID=root;PASSWORD=ttr;pooling=false");
MySqlCommand command = connection.CreateCommand();
MySqlDataReader Reader;
command.CommandText = "select * from table1";
connection.Open();
Reader = command.ExecuteReader();
Reader.Read();
byte[] byteData = (byte[])Reader["linkedlist"];
connection.Close();


i am getting this exception when i try to open connection connection.Open()
anyhelp will be greatly appreciated

 
At 6:35 AM, March 09, 2009, Anonymous Anonymous said...

Hav the same problem! Nobody who can help out there?

 
At 7:20 AM, March 12, 2009, Blogger S.M.Anandhu said...

Am using MySQL Connector Net 5.2.3 and compact framework 3.5
i also getting this exception when i try to open connection connection.Open()
anyhelp plz post

 
At 6:18 AM, July 28, 2009, Blogger Chris said...

Yeah same here, you helped me with this post. thank you.

 
At 10:11 AM, August 27, 2009, Anonymous Anonymous said...

I'm having the same dang problem... I'm in Microsoft's sample project, that gets installed with UCCA, called IMVoIPSample. It has some forms that are part of UCCPSample namespace, but the main namespace is something else... "IMVoIPSample". So I tried adding a new form, which by default is added to the default namespace (IMVoIPSample), and I can display it fine. The problem arises when I try to add an image to the resources, and display it in a picture box on the new form. Everything looks good at design time, but when I run the app it bombs with the dreaded MissingManifestResourceException. It says make sure IMVoIPSample.Properties.Resources.resources was correctly embedded or linked into the assembly "IMVoIPSample" at compile time, or that all the satellite assemblies required are loaded and fully signed. I don't have any classes, enum, etc ahead of my main form class, and it bombs even if I set the image to embed in resx file. There are 3 senior C# devs here and we're all scratching our heads on this one.

 
At 3:08 AM, September 08, 2009, Anonymous Anonymous said...

To get rid of the MissingManifestResourceException, delete all Resources.Designer.cs files, then click on the Resources.resx file and set Properties -> Custom Tool to "ResXFileCodeGenerator"

 
At 3:43 AM, November 11, 2009, Anonymous Anonymous said...

good day everyone,I am using MySQL Connector Net 5.2.3 and compact framework 3.5 to connect to a distant MySql database from a PPC
i m getting this exception when i try connection.Open()

I tryed everything from the post above and still got nothing
help me please

 
At 2:47 PM, August 04, 2010, Blogger uglycoyote said...

This thread saved my ass. I had to google for 2 hours before I found it. The documentation for MissingManifestResourceException is shit. Thank you!!!!

 

Post a Comment

<< Home