Bug in Votive can prevent culture settings from taking effect when building an MSI
Recently, I posted a set of instructions for creating an MSI-based installer for a Windows Media Center application using WiX v3.0 and Votive. While I was working on writing those instructions, I noticed a frustrating issue that I could not consistently reproduce. After I added the en-US culture attribute, saved and tried to build the MSI, I received 200+ errors about undefined localization strings in the WixUI dialog libraries. Eventually, I discovered that the en-US culture attribute was not being passed on the command line to light.exe, and then I re-opened the property pages and discovered that the culture attribute had not been saved like I thought.
Eventually, I was able to get Visual Studio to think that the property pages needed to be saved again, and it persisted the en-US culture attribute to the .wixproj file. I tried a couple of times to start from scratch and narrow down a set of steps, I could not find a consistent pattern that would cause the culture attribute to be correctly saved.
I found the following bug being tracked for this issue in the WiX SourceForge bug database -
https://sourceforge.net/tracker/index.php?func=detail&aid=1566296&group_id=105970&atid=642714
That bug lists an easier workaround that can be used if you run into this issue while trying to use the steps that I previously posted:
- Open the .wixproj file in a text editor such as notepad
- Find the section named <Cultures></Cultures> and add the culture string(s) you want to support for your MSI delimited by semi-colons
- Save and close the .wixproj file
- Build the .wixproj file again in Visual Studio