Defining ProductCode for multi-language MSI installer? #9310
Unanswered
bobhairgrove
asked this question in
Questions
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
-
Question
I am using Wix Toolset 6.0.2 with the HeatWave extension in Visual Studio.
There is a technique described here for generating a single MSI file with multiple language UI using embedded transforms. If making a burn bundle instead of an MSI installer, the language aspect is solved differently. However, I can get by with just an MSI installer, but would like to have the automatic language-switching as described in this article.
If I generate English, German and French versions of my MSI from the same code base using the localization facility with
*.wxlfiles, then I can generate transforms usingwix msi transformvia the following commands:Assuming the output from Visual Studio build is stored in
<project folder>\bin\x64\Release\en-USand different subfolders for each language, and my MSI is calledMyInstaller-<LANG>.msi, I have the following commands which generate MST transforms in theMSTsubfolder. These are run from thebin\x64\Releasesubfolder on the command line:Using Orca, I can apply each transform to the English MSI and see the highlighting of what gets changed. Although the UpgradeCode is the same (which I define in the Wix authoring), the ProductCode gets clobbered when I apply a transform (i.e. each MSI file is generated with its own ProductCode, which overwrites the one in the English-language MSI). All other vital parts such as PackageCode, component GUIDs, etc. seem to stay the same.
Now I know that I should keep the
UpgradeCodethe same until the end of time, and the current wisdom says to let Wix generate the ProductCode. However, it seems that in order to avoid messing with it later on, in this particular scenario the ProductCode should be defined explicitly so that each localized MSI file has the same ProductCode as well as the same UpgradeCode.Is there any downside to this except for the fact that each new version needs to have a new ProductCode? It seems like it wouldn't be too hard to maintain since I have the product version isolated in its own *.wxi included file, and I could put a variable defining the ProductCode in that file.
Open Source Maintenance Fee
wixtoolsetproject because I support the maintainers.Beta Was this translation helpful? Give feedback.
All reactions