I have Visual Studio 2012, WiX 3.8 setup project and Burn bootstrapper. Everything works fine if I target a 32-bit machine. I want to create two separate MSI files for 32-bit and 64-bit with localizations. But, I cannot find a 64-bit target option in configuration manager. So, I manually created an x64 target and tried compiling the setup project. But it fails completely. I'm not able to include the following file:
<?xml version="1.0" encoding="UTF-8"?>
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi"
xmlns:netfx="http://schemas.microsoft.com/wix/NetFxExtension">
<?include $(var.ProjectDir)\Includes\Variables.wxi ?>
<Fragment>
<CustomAction somecustomaction />
...
More custom actions...
...
</Fragment>
</Wix>
The error I get is:
Error 33 Schema validation failed with the following error at line 1, column 206: The element 'Wix' in namespace 'http://schemas.microsoft.com/wix/2006/wi' cannot contain text. List of possible elements expected: 'Bundle Product Module Patch Fragment PatchCreation'. somefile.wxs 2 1 Some.Installer Installer_x64\Some.Installer)
When I remove the include tag, then it compiles. But I need to use such include directives in other files where I reference some variables. I don't really understand the issue here. The include tag works perfectly for 32-bit, then why it is throwing an error if I use it with a 64-bit target? What is the issue here?
Are there any best practices for creating setups for different platforms? I'm also using the Burn bootstrapper and localizations for English and German. I have gone through similar questions on Stack Overflow, but no help so far.