App won't start

  • Thread starter Thread starter yuriy_zubarev
  • Start date Start date
Y

yuriy_zubarev

Greetings,

I have a Windows Form application (C#, .NET 1.1) that I distribute to
my clients and everyone can run it successfully but those who have
international versions of Windows XP (German, Norwegian, Russian, etc).
When they try to launch the app after an installation they get the
following:

Setup Error
Failed to load resources from resource file
Please check your setup

The problem is clearly related to different cultures and in my app I
only use invariant one explicitly and default one implicitly.

Any help would be greatly appreciated.

Regards,
Yuriy Zubarev
 
yuriy_zubarev said:
Greetings,

I have a Windows Form application (C#, .NET 1.1) that I distribute to
my clients and everyone can run it successfully but those who have
international versions of Windows XP (German, Norwegian, Russian,
etc). When they try to launch the app after an installation they get
the following:

Setup Error
Failed to load resources from resource file
Please check your setup

The problem is clearly related to different cultures and in my app I
only use invariant one explicitly and default one implicitly.

Can you describe how you are using resources? Do you use satellite
assemblies? If you have set Localizble to true in the form's properties
then you indicate that you are using satellite assemblies. The name is a
misnomer, because they are not loaded like normal assemblies are loaded.
Instead, each satellite must be in a subfolder with the name of the
culture that it is associated with. So the test.resources.dll for
English will be in a folder called en, the test.resources.dll (note the
same name) for British English will be in a folder called en-GB. (Note
that you can also add satellites to the GAC, but I cannot see why you
would want to do this.) At runtime the ResourceManager class will obtain
the thread locale and use this to determine the culture, then it will
load the appropriate satellite DLL. When you deploy your application you
must make sure that you deploy the subfolders with the satellite
assemblies. The names of the subfolders are important. More details can
be found in my Fusion worshop.

What's confusing me is that if ResourceManager cannot find the satellite
it is looking for it will 'fallback' to the neutral resource. This
suggests that ResourceManager is getting access to resources - either a
satellite or in the main assembly - but the resource it is looking for
is not present. You say that this app works on your machine, yes? If so,
then I suspect that the client's machine have an old version of the
satellites that do not have the resource.

Richard
 
Back
Top