У меня есть Visual Studio 2012, проект установки WiX 3.8 и Записать загрузчик. Все работает нормально, если я нацелен на 32-битную машину. Я хочу создать два отдельных файла MSI для 32-битной и 64-битной версий с локализацией. Но я не могу найти 64-битную целевую опцию в диспетчере конфигурации. Итак, я вручную создал цель x64 и попытался скомпилировать проект установки. Но это полностью не удается. Я не могу включить следующий файл:
<?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>
Я получаю следующую ошибку:
Ошибка 33 Проверка схемы завершилась ошибкой из-за следующей ошибки в строке 1, столбец 206: элемент 'Wix' в пространстве имен 'http://schemas.microsoft.com/wix/2006/wi 'не может содержать текст. Список возможных ожидаемых элементов: 'Bundle Product Module Patch Fragment PatchCreation'. somefile.wxs 2 1 Some.Installer Installer_x64 \ Some.Installer)
Когда я удаляю тег include, он компилируется. Но мне нужно использовать такие директивы include в других файлах, где я ссылаюсь на некоторые переменные. Я действительно не понимаю, в чем проблема. Тег include отлично работает для 32-битной версии, тогда почему он выдает ошибку, если я использую его с 64-битной целью? В чем проблема?
Есть ли лучшие практики для создания настроек для разных платформ? Я также использую загрузчик Burn и локализации для английского и немецкого языков. Я задавал аналогичные вопросы о переполнении стека, но пока безрезультатно.