• Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 502
  • Last Modified:

MissingManifestResourceException when running Windows Service / C# (VS 2003)

I have a simple Windows Service written in C# and I would like to maintain error messages in a Resource File.

I added the resource file by Right-Clicking on the project name in the Solution Explorer and selecting Add New Item -> Assemly Resource File, and I gave it the name "MainResource".  The extension .resx was then added to the file name.

I then wrote a class called "ResourceHelper".

The entire code for ResourceHelper is as follows:
using System;
using System.Resources;
using System.Reflection;

namespace crodia2batchprocess_ws.Resources
      /// <summary>
      /// Summary description for ResourceHelper.
      /// </summary>
      public class ResourceHelper
            public ResourceHelper()
                  // TODO: Add constructor logic here

            public static string GetMessage(int MessageNumber)
                  String message;
                  String strNumber;
                  String resourceCode;

                  strNumber = Convert.ToString(MessageNumber);
                  //messages are defined in the resource file as "msgNNNN"
                  //msgNumber = "msg" + MessageNumber.ToString.
                  //48 = ASCII 0
                  //Example: message number 123 would be filed using resource code "msg0123"
                  resourceCode = "msg" + strNumber.PadLeft(4, (char)48);
                  Assembly asm = Assembly.GetExecutingAssembly();
                  //ResourceManager rm = new ResourceManager("MainResource.resx", asm);
                  ResourceManager rm = new ResourceManager("MainResource", asm);
                  message = (string) rm.GetObject(resourceCode);

                  return message;



The project compiles without any errors.

An example of where I make a call to the above method from my Windows Service code is as follows:

public Crodia2BatchProcess()
            // This call is required by the Windows.Forms Component Designer.

            // TODO: Add any initialization after the InitComponent call
            // Just check if the settings file exists. If so, the service will go to
            // OnStart and load the settings file.
            if (!File.Exists(GlobalValues.AppSettingsFileName))
                  EventLog.WriteEntry(ResourceHelper.GetMessage(1), EventLogEntryType.Information);


            }      // !File.Exists
            // Else the service will go straight to OnStart

I installed the service successful using InstallUtil <servicename.exe>

When I attempt to start the service, I deliberately make sure that my file defined under AppSettingsFileName does not exist in order to throw the exception trapped above which I would then like to access the message in the Resource file using the GetMessage method.

When I start the service, I get a Window telling me that a MissingManifestResourceException has occurred...

Any ides of where I'm going wrong?  

Many thanks.

  • 2
1 Solution
Bob LearnedCommented:
What is the 'Build Action' for the .resx file?

ersldublinAuthor Commented:
Embedded Resource
Bob LearnedCommented:
Actually, the file names for the .resources files should be fully qualified with the LCID for the language you are working with:

ResourceManager class:


Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

Join & Write a Comment

Featured Post

Free Tool: Path Explorer

An intuitive utility to help find the CSS path to UI elements on a webpage. These paths are used frequently in a variety of front-end development and QA automation tasks.

One of a set of tools we're offering as a way of saying thank you for being a part of the community.

  • 2
Tackle projects and never again get stuck behind a technical roadblock.
Join Now