thenextman
Posts: 1
Joined: Mon Apr 29, 2024 6:30 pm

Installer "Summary" languages - generated how?

We build an .msi and .exe package that have for a long time been localized into English, French and German.

Since our most recent major release (earlier this year) we're hitting the same problem described in this viewtopic.php?t=29094. Essentially, deployment via GPO doesn't work as the German LCID (1031) is being picked up as it's lower than the English one (1033), and the GPO tool only looks at the lowest LCID.

Checking with Orca I see that indeed the summary information lists 1033, 1036 and 1031 which is certainly our problem. However on prior major versions (despite having all 3 localizations), only 1033 is advertised here. We've revised the installer project in that time (although nothing to do with languages) and been through some AI updates (likely 20.x -> 21.x). Does anyone know how this field is generated (if not explicitly defined)? i.e. what setting(s) in the AI project lead to the generation of this field? Or perhaps it's not driven by the project and there has been an internal change in AI itself?

https://ibb.co/fQh4jk9
https://ibb.co/WVgjbHy

Moving forward, I see two paths to fix this:

1. As mentioned in the linked post, add the neutral language 0 by providing this summary information explicitly
2. Setting the same Product Code for each localization

Can someone comment on the viability of one or both of these solutions?

For (1), I have read the advertising a neutral language code will prevent the installer from automatically picking the proper language for the user environment when run interactively. Can anyone confirm if this is the case?

For (2), there is a button in Product Details > Product IDs called "Set Same Value". Does someone know a negative effect of doing this? Is there documentation on this? If I do that, will AI still generate the unique product code for every major upgrade? In terms of Windows Installer, we only provide major upgrades.

https://ibb.co/BZMk8mN

Thanks in advance for any advice
Catalin
Posts: 6730
Joined: Wed Jun 13, 2018 7:49 am

Re: Installer "Summary" languages - generated how?

Hello and welcome to our forums,

First of all, please accept my apologies for the delayed reply as we had some days off here due to Orthodox Easter.

Regarding the issue you are facing here, it is indeed a quite old and known one.
Checking with Orca I see that indeed the summary information lists 1033, 1036 and 1031 which is certainly our problem. However on prior major versions (despite having all 3 localizations), only 1033 is advertised here. We've revised the installer project in that time (although nothing to do with languages) and been through some AI updates (likely 20.x -> 21.x). Does anyone know how this field is generated (if not explicitly defined)? i.e. what setting(s) in the AI project lead to the generation of this field? Or perhaps it's not driven by the project and there has been an internal change in AI itself?
I am not quite sure what the field is that you are talking about. If possible, could you please give me some more details (perhaps a screenshot)?

If you mean the Languages field from your first screenshot, that is generated by the languages used in the project - basically each language is a code. However, you seem to already know all that and that's why I'm a little bit confused whether this is indeed what you are asking me or not.
For (1), I have read the advertising a neutral language code will prevent the installer from automatically picking the proper language for the user environment when run interactively. Can anyone confirm if this is the case?
I am also aware of this, but unfortunately I can not confirm it as I've never had the chance to test it.
For (2), there is a button in Product Details > Product IDs called "Set Same Value". Does someone know a negative effect of doing this? Is there documentation on this? If I do that, will AI still generate the unique product code for every major upgrade? In terms of Windows Installer, we only provide major upgrades.
This would seem like the correct approach here. To be honest with you, even Microsoft advises the use of different ProductCodes for each language as per their "ProductCode property" article.
This ID must vary for different versions and languages.
However, at the same time it's them having such corner cases so I would say it's safe to adjust the options to match your current needs, even if that goes against the documentation.

The main problem I can see with this approach is the fact that each language will be seen as the same product (e.g. the English one and the German one). Windows uses the ProductCode to differentiate products and therefore if two products have the same code, even if they are completely different, they will be seen as the same by the OS.

There are certain cases when setting the same ProductCode for all your languages is advised. For instance, the following thread: Multi-language EXE package uninstall not working

Since the product does not have the same ProductCode for all languages, on uninstall the windows installer sees it as a different product and instead of launching it in Maintenance Mode (so the user can uninstall it), it launches it as a first time install in the English language.

Hope this helps!

Best regards,
Catalin
Catalin Gheorghe - Advanced Installer Team
Follow us: Twitter - Facebook - YouTube

Return to “Building Installers”