Использование 64-разрядных пакетов установщика Windows
При создании 64-разрядных пакетов установщика Windows или приложений, которые вызывают установщик Windows для установки 64-разрядных пакетов, выполните следующие действия.
- Используйте схему базы данных установщика Windows 200 или более поздней версии. Укажите, что версия 2.0 является минимальной версией установщика, необходимой для установки пакета, задав для свойства Page Count Summary целое число 200. Более ранние версии установщика Windows отклоняют попытки установки 64-разрядных пакетов. Для 64-разрядных пакетов на платформе Arm64 схема базы данных установщика Windows должна быть не ниже 500.
- Укажите в свойстве Template Summary потока сводной информации о пакете, что это 64-разрядный пакет. Введите "Intel64" в поле платформы свойства "Сводка по шаблону ", если пакет должен выполняться на процессоре Intel64. Введите x64, если пакет должен выполняться на 64-разрядном расширенном процессоре. Введите "Arm64", если пакет должен выполняться на процессоре Arm64. Пакет не может быть помечен как поддерживающий платформы Intel64 и x64. Недопустимое значение свойства Template Summary "Intel64,x64". Пакет не может быть помечен как поддерживающий как 32-разрядную, так и 64-разрядную платформы. Недопустимые значения свойств Template Summary значений "Intel,x64" или "Intel,Intel64".
- Определите каждый 64-разрядный компонент, задав msidbComponentAttributes64bit в столбце Атрибуты таблицы Компонент .
- Используйте необязательные условные инструкции, которые проверка версию 64-разрядной операционной системы, ссылаясь на свойство VersionNT64. Установщик Windows устанавливает для этого свойства 64-разрядную версию Windows и оставляет versionNT64 неопределенным, если операционная система не является 64-разрядной версией Windows. Дополнительные сведения см. в разделе Использование свойств в условных инструкциях.
- Используйте необязательные условные операторы, которые проверка уровень числового процессора компьютера, ссылаясь на свойство Intel64 или Msix64. Установщик Windows задает для этих свойств текущий уровень числового процессора компьютера и оставляет свойство Intel64 неопределенным, если это не процессор на основе Itanium. Дополнительные сведения см. в разделе Использование свойств в условных инструкциях.
- Используйте таблицу AppSearch и действие AppSearch , чтобы выполнить необязательный поиск существующих 64-разрядных компонентов в реестре. Чтобы найти существующие 64-разрядные компоненты, добавьте бит msidbLocatorType64bit в столбец Тип таблицы RegLocator. Дополнительные сведения см. в разделе Поиск существующих приложений, файлов, записей реестра или .ini свойства "Записи файлов".
- Получите пути к системным папкам, ссылаясь на свойства System64Folder, Свойство ProgramFiles64Folder и CommonFiles64Folder для 64-разрядных папок, а также свойства SystemFolder , ProgramFilesFolder и CommonFilesFolder Для 32-разрядных папок.
- Убедитесь, что приложение использует правильный GUID при ссылке на 64-разрядный компонент. Если существуют 32-разрядные и 64-разрядные версии конкретного компонента, они должны иметь разные идентификаторы GUID компонентов.
- Определите, нужно ли определять новые переменные среды при установке 64-разрядных приложений.
- Если требуется установить 64-разрядный диспетчер драйверов ODBC, компонент, который его содержит, должен называться ODBCDriverManager64. Диспетчер драйверов ODBC должен быть включен в пакет установщика, а также компонент с именем ODBCDriverManager64. При необходимости диспетчер будет установлен.
- Убедитесь, что приложение вызывает только 32-разрядные службы, которые выполняются как исполняемые файлы. Приложения не должны вызывать 32-разрядные службы, которые выполняются в библиотеках DLL.
- Если приложение устанавливает совместно существующие 32- и 64-разрядные версии компонента, убедитесь, что приложение правильно использует .ini сведения о файлах.
- Убедитесь, что приложение применяет только 32-разрядные исправления к 32-разрядным двоичным файлам и 64-разрядные исправления к 64-разрядным двоичным файлам.
- Рассмотрите будущие сценарии обновления для 32-разрядных и 64-разрядных версий и поддерживайте коды обновления. Дополнительные сведения см. в статье Установка исправлений и обновлений.
- При использовании начального приложения для установки 64-разрядного пакета установщика Windows компилируйте начальное приложение как 64-разрядное приложение.
- Чтобы отключить отражение реестра для разделов реестра, затронутых определенным компонентом, задайте бит msidbComponentAttributesDisableRegistryReflection в поле Атрибуты таблицы Компонент . Это может потребоваться для сосуществования 32-разрядных и 64-разрядных копий одного приложения. Если этот бит задан, установщик Windows вызывает функцию RegDisableReflectionKey для каждого ключа, к которому обращается компонент. Этот бит доступен в установщике Windows версии 4.0. Этот бит игнорируется в 32-разрядных системах. Этот бит игнорируется в 64-разрядных версиях Windows XP и Windows 2000.
Примечание
Значение корня числового реестра, возвращаемое параметром lpPathBuf функции MsiGetComponentPath , позволяет различать компоненты в 32-разрядных и 64-разрядных операционных системах. Дополнительные сведения см. в статье Функция MsiGetComponentPath .
Связанные темы