cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
blippen
Level 3

Single "baseline patch" for multiple languages

Hello everyone,

I have a problem that I would need some help to solve (or maybe its not a valid solution).

This is what I have in mind.
Overview of problem:
One MSI project with several languages and ONE patch is produced for for all of the languages.

Overview, solution?:
* One "Basic MSI Project"
* Languages is setup as Releases. English, Swedish, Italian...
* Compressed installation is build for each language and version (setup.exe)
* Patch is only produced from a single baseline, English in this case
* The single patch (i.e. 1.0 -> 1.1 -> 1.2) is distributed to all of the installed languages that has 1.0/1.1.

What I have.
I've put up the environment as above.

To avoid conflicts I've disabled the auto generation of "Package code" in the Release configuration. For each new version, i.e. 1.2->1.3, I generate a new Package code. This will assure that all the languages will have the same Package Code for the same version. En, Sv, It will have the same package code for 1.3.

This will make it possible to apply the baseline patch (I hope anyway 🙂 )

And... It almost works :rolleyes: .
I install the Swedish v1.0 patch.
Install the Baseline update v1.1. It installs all the changes made but Windows installer pops up with "... stopped working and was closed". If I look in the log I see that the that it actually tries to extrace a support file (language maybe?)
>Failed to extract file _isres1053.dll. Error = 0
>Extracting support file StringƒMüÿMÈèé÷ÿ‹Mô_^d‰.txt to

Install the Swedish v1.2, (and all of the others) all changes will be made but Windows installer will exit the same way at the end and in the log:

>DEBUG: Error 2748: Transform v1_0_0ToLatest1 invalid for package C:\Windows\Installer\240e249.msi. Expected product version <= 1.0.0, found product version 1.1.0.
1: 2748 2: v1_0_0ToLatest1 3: C:\Windows\Installer\240e249.msi 4: 1.0.0 5: 1.1.0


Not sure that my solution is the right way to go? Maybe it's a dead end?
Anyone got a solution for this problem? Could be another approach, maybe wrap the msi with an outer msi that has a single language that will pass the language to the inner msi. I don't want the language drop box...

Best Regards
Daniel
Labels (1)
0 Kudos
(1) Reply
blippen
Level 3

Ok, I got it to work.

The issue was that I didn't include all the languages in the baseline (I had only English on the baseline and Swedish/Italian on the others). Apparently Installshield makes the .msp patch load the language dll which wasn't included in my baseline.

Now it works and I can introduce a new release along the "way".
I.e.
v1.0 English, Swedish (uncompressed for patch making). English compressed for distribution. Swedish compressed for distribution.
v1.1 "-
v1.3 English, Swedish, Italian (uncompressed for patch making). English compressed for distribution. Swedish compressed for distribution. Italian compressed for distribution.

And therefore we don't need the ugly language dropbox at start and we only have to support one project (and one patch) for all the languages since they are all the same (well not really true but script and parameters to msiexec fix this).

Not sure that I will stick to this when we release the product, but anyway I just wanted to let you know it works.

An annoying issue with Installshield is that if you produce a patch between two sets of msis (no signatures, nothing special...) that is identical then the output is a patch that is too large compared to what it should be. I.e. the project is 15 MB and no changes will produce a patch that is 2 MB.
Well that is another issue/thread :rolleyes:
0 Kudos