I have a problem, when deploying multilingual applications using cab files on
Compact Framework 2.0. It seems that something is going wrong with compact
framework 2.0
Below I have a description of the problem
The main Smart Device Application contains 3 resource files under the
Properties folder, in order to produce localization satellite asseblies.
Those resource files are named Resources.resx (a default empty resource
file), Resources.en-GB.resx and Resources.de-DE.resx (which output
\en-GB\appName.resources.dll and \de-DE\appName.resources.dll in the
Application Folder of the Pocket PC). The project is deployed without any
problems in debug or release mode from Visual Studio in the Pocket PC, and
everything works out fine. When a change in the culture is required, the
application handles it without problems and uses different resource files
(en-GB or de-DE).
Then I create a smart device cab project inside the above solution. In
project Output I added all available choices (although some of them might not
be needed). After a succesful built of the cab file I write/deploy the
CAB-installation file of the application in the Pocket PC. From that point,
the resource above files, fail to cooperate with the application. They are
not being used anymore and the application crashes. Although the code (for
the resource management) remains the same, the resource dlls in the Pocket
PC(\en-GB\appName.resources.dll and \de-DE\appName.resources.dll) are
different from the same dlls that were produced in the (working) debug mode
of Visual Studio (in the Bin\Debug folder). In fact they have the exact same
size(840K), the same case sensitive names but they differ in binary level. It
seems that the deployment of these resource dlls (or satellite assemblies)
through a cab project, slightly changes these files and the application
cannot recognise them. I also tried the same resource files in different
project with a different cab project with the same results. The same thing
happens if these files are deployed as content. When in the Pocket PC, they
have slightly changed. In fact, if I paste/replace these files produced from
debug mode in the Pocket PC (where they were deployed from the cab project),
the application works fine, so it's not a conversion problem of activesync.
The cab project resource dlls are just different from the original dlls
produced by the application project.