I am using WiX to build a MSI that will be used to silently install and replace templates for a customer's client environment.
This works rather good by now, but when linking the final package with light.exe, I get errors for files using äöüß. The customer doesn't want to change these names, so I have to change the code.
Is this possible? I currently use the encoding 'windows-1252' which is usable with German. Also I don't think this is an issue in .wix, but rather later on, since there are no errors when compiling with candle.exe
Here are some of the errors. They are all rather similar and all go away if I change the name, heat.exe them and repeat the process after that.
\Folder\Installer.wxs(125) : error LGHT0103 : The system cannot find the file 'SourceDir\install\word\Vorlagenverzeichnisse öffnen.bat'.
\Folder\Installer.wxs(545) : error LGHT0103 : The system cannot find the file 'SourceDir\office12\vorlagen\intern\Protokoll-MA-Gespräch.docx'.
\Folder\Installer.wxs(569) : error LGHT0103 : The system cannot find the file 'SourceDir\office12\vorlagen\Marketing\Waben für Firmendarstellung Englisch.pptx'.
\Folder\Installer.wxs(572) : error LGHT0103 : The system cannot find the file 'SourceDir\office12\vorlagen\Marketing\Waben für Firmendarstellung.pptx'.
\Folder\Installer.wxs(767) : error LGHT0103 : The system cannot find the file 'SourceDir\office12\vorlagen\sonstiges\Hähnchenbestellung.xlt'.
\Folder\Installer.wxs(1007) : error LGHT0103 : The system cannot find the file 'SourceDir\office16\Bilder\Grafiken\nikolausmuÌ^tze.png'.
\Folder\Installer.wxs(1064) : error LGHT0103 : The system cannot find the file 'SourceDir\office16\Bilder\Grafiken\Rechner mit Zahnrädern.png'.
\Folder\Installer.wxs(1130) : error LGHT0103 : The system cannot find the file 'SourceDir\office16\Bilder\Grafiken\unabhaâ êngigkeit.png'.
This is my .wix. I changed it a bit and left out some unneeded parts:
<?xml version='1.0' encoding='windows-1252'?>
<Wix xmlns='http://schemas.microsoft.com/wix/2006/wi'>
<Product Name='BLABLABLA' Id='*' UpgradeCode='ValidGUID'
Language='1031' Codepage='1252' Version='1.1.1' Manufacturer='BLABLABLA'>
<Package Id='*' Keywords='Installer' Description="Something 1.0 Installer"
Comments='Nothing' Manufacturer='Selfmade Inc.'
InstallerVersion='100' Languages='1031' Compressed='yes' SummaryCodepage='1252' />
<MajorUpgrade AllowSameVersionUpgrades="yes"
DowngradeErrorMessage="More Nothing" />
<Media Id='1' Cabinet='A.cab' EmbedCab='yes' DiskPrompt="Files" />
<Property Id='DiskPrompt' Value="" />
<Property Id="MSIRESTARTMANAGERCONTROL" Value="Disable"/>
<Directory Id='TARGETDIR' Name='SourceDir'>
<Directory Id='noone' Name='noone'/>
</Directory>
<Feature Id='Complete' Level='1'>
<ComponentGroupRef Id='A' />
</Feature>
</Product>
<Fragment>
<DirectoryRef Id="noone">
<Directory Id="..." Name="install" />
<Directory Id="..." Name="office12" />
<Directory Id="..." Name="office16" />
<Directory Id="..." Name="windows" />
</DirectoryRef>
</Fragment>
<Fragment>
<ComponentGroup Id="A">
<Component Id="..." Directory="..." Guid="AnotherValidGUID">
<File Id="..." KeyPath="yes" Source="SourceDir\install\word\Vorlagenverzeichnisse öffnen.bat" />
</Component>
<!--Many More Components-->
</ComponentGroup>
</Fragment>
<!--Also Directories also as Fragments-->
</Wix>
Edit: @BrianSutherland gave me the final push to the solution.
I changed the Codepages for both Product and Package, which turned out to one step too much.
All it needed is to change the product's codepage.
So my final WiX-Script starts like this:
<?xml version='1.0' encoding='utf-8'?>
<Wix xmlns='http://schemas.microsoft.com/wix/2006/wi'>
<Product Name='BLABLABLA' Id='*' UpgradeCode='ValidGUID'
Language='1031' Codepage='utf-8' Version='1.1.1' Manufacturer='BLABLABLA'>
<Package Id='*' Keywords='Installer' Description="Something 1.0 Installer"
Comments='Nothing' Manufacturer='Selfmade Inc.'
InstallerVersion='100' Languages='1031' Compressed='yes' SummaryCodepage='1252' />