Создание 64-х битных инсталляций в WiX
Oct 27, 2006 · CommentsПрограммирование
Статья в 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).