Создание 64-х битных инсталляций в WiX.
October 27th, 2006
Статья в MSDN “Using 64-Bit Windows Installer Packages.” описывает отличия 64-х битных пакетов от 32-х битных с точки зрения Windows Installer. Я же хочу написать как этот список выглядит через призму WiX.
- Минимальная версия Windows Installer, которая может работать с 64-х битными пакетами – 2.0. Соответственно значение атрибута “Package/@InstallerVersion” должно быть 200 или выше. В случае. Если атрибут не установлен, попытка инсталляции заканчивается совсем неинформативным сообщением:

- Атрибут “Package/@Platforms” определяет целевую платформу. Возможные значения: “Intel” (для x86), “Intel64” (для ia64), “x64” и “Alpha”. Не смотря на то, что имя атрибута стоит во множественном числе, единственная допустимая комбинация нескольких платформ это “Intel,Alpha”. Фактически, поддерживаемая платформа для каждого пакета всегда одна;
- Каждый 64-х битный компонент должен быть помечен атрибутом “Component/@Win64” со значением “yes”. По-умолчанию, все компоненты считаются 32-х битными;
- Еще один параметр компонента, имеющий смысл только на 64-х битной системе, – атрибут “Component/@DisableRegistryReflection”. В случае, если значение этого атрибта установлено в “yes”, Windows Installer будет использовать функцию RegDisableReflectionKey, чтобы запретить копирование ключа между 32-х и 64-х разрядными представлениями реестра. Это работает только в случае если используется Windows Installer 4.0.
Остальные отличия касаются, в основном, имен свойств и компонент, так что они не специфичны для WiX:
- 32-х и 64-х версии одного и того же компонента должны использовать разные идентификаторы (GUID);
- 64-х битные компоненты должны собственные варианты свойств VersionNT, SystemFolder, ProgramFilesFolder и CommonFilesFolder – VersionNT64, System64Folder, ProgramFiles64Folder и CommonFiles64Folder соответственно;
- Степпинг процессора можно получить с помощью свойств Msix64 (для x64) и Intel64 (для ia64).
Recent Comments