I am writing a simple code to install a file in the Program Files folder, NOT Program Files (x86)
<Fragment>
<Directory Id="TARGETDIR" Name="SourceDir">
<Directory Id="ProgramFiles64Folder">
<Directory Id="INSTALLFOLDER" Name="Del">
<Directory Id="MyFolder" Name="MyFolder"/>
</Directory>
</Directory>
</Directory>
</Fragment>
<Fragment>
<Component Id="Component1" Directory="MyFolder" Win64="yes">
<File Id="FirstFile.txt"/>
</Component>
</Fragment>
Basically it should create a folder del in Program Files and in it, it should create folder MyFolder which would contain FirstFile.txt
If I do it for Id = ProgramFilesFolder , it works by installing in Program Files (x86)
Changing it to ProgramFiles64Folder gives the following error
ICE80: This package contains 64 bit component 'Component1' but the Template Summary Property does not contain Intel64 or x64.
My Question is from where or how can I change the Template Summary property ?
Thanks in Advance
Arnson's Approach: Do check out the answer from Bob Arnson. Here is an extract from his blog: "It’s typical to want to produce both 32-bit and 64-bit packages from the same WiX source, so a common approach is to make the @Win64 attribute value a preprocessor variable." Hence he uses a compiler switch to compile either x32 or x64-bit version MSI files from the same source.
And no: you can not support both with architectures with one MSI. See this blog from Heath Stewart: Different Packages are Required for Different Processor Architectures.
"Hard Coded" Way: Here is an old sample you can try: https://github.com/glytzhkof/WiXBitnessX64
Some extracts:
Package element:
Component element: