Чтобы установить 64-разрядные компоненты, MSI должен быть помечен как 64-разрядный, в противном случае пути файловой системы и реестра будут перенаправлены. Помимо добавления 64-битных атрибутов, 32-битные и 64-битные пакеты должны отображаться как разные продукты; то есть вы должны создать новые коды продуктов и обновлений.
Я думаю, что могут быть проблемы с использованием WiX 2 для создания 64-битных MSI, поэтому вам может потребоваться обновление до WiX 3.x.
Поскольку вам нужны два MSI-файла для 32-битной и 64-битной Windows, вы можете легко предотвратить установку 32-битных файлов на 64-битный ПК, не включив их в 64-битную программу установки. Если вам нужен один исполняемый файл установщика для x86 и x64, вам нужно использовать загрузчик, который выбирает, какой MSI запускать. Я не знаю, может ли это сделать burn.exe из дистрибутива WiX.
Один из способов приблизиться к исходному макету - это использовать один главный файл WiX с условными обозначениями, которые выбирают, какие функции встроить, в зависимости от целевой архитектуры, а затем иметь модули для конкретной архитектуры, которые связаны. такого решения в https://svn.bluestop.org/viewvc/repos/sctpDrv/wix/. Обратите внимание, что он поддерживает только x86 и x64, а не Itanium (он же Intel64).