Установка 64-битного проекта Installshield - PullRequest
10 голосов
/ 14 сентября 2009

Каков наилучший способ использования InstallShield для создания установщиков для 32- и 64-разрядных сред? Большая часть моего приложения нейтральна к битам (.net, Java, файлы данных). Я бы предпочел, чтобы мне нужно было упаковать эти файлы только один раз. Существует ли стандартный подход к сокращению обслуживания проектов installshield? В настоящее время единственное решение, которое я могу найти, - это иметь два дублирующих проекта, где каждый из компонентов помечен как 64-битный, а каталог установки по умолчанию установлен в ProgramFiles64. Должен быть лучший способ сделать это!

Лишь очень небольшая часть моего приложения заботится о том, как могут выполняться биты. У нас есть несколько C ++ DLL и JNI-вызовов, которые должны отличаться. Большая часть этого определяется во время выполнения, проверяя, является ли JRE, на котором мы работаем, 64-битным.

Я бы хотел не распространять два файла по 130 МБ и в идеале отправлять один большой zip-файл, содержащий оба установщика, каждый из которых ссылается на общие компоненты. Нужно ли создавать модули слияния для общих вещей и ссылаться на них в каждом из проектов?

Мы используем InstallShield 2009 (Premier), если это имеет значение.

Ответы [ 2 ]

7 голосов
/ 15 сентября 2009
  • Если вы можете обойтись без нулевых 64-битных компонентов в вашей установке, то вы можете просто сделать 100% 32-битной настройкой, и она будет одинаково хорошо работать как в 32-битной, так и в 64-битной Окна.

  • Если это невозможно, я рекомендую использовать флаги конфигурации продукта. В представлении «Выпуски» создайте несколько конфигураций продукта, таких как «XP32» и «XP64». Отметьте соответствующее поле «Сводка шаблона»: одно - «Intel; 1033», а другое - «AMD64; 1033». Свяжите каждый с уникальным флагом конфигурации продукта, чтобы идентифицировать его, например, "xp32", "xp64". Затем для каждой функции установите соответствующий флаг выпуска. При необходимости вы можете установить 64-битное свойство для ваших 64-битных компонентов; просто убедитесь, что в компонентах, отмеченных вами как «xp32», нет 64-битных компонентов. Это позволит вам иметь только 1 файл проекта InstallShield, но создавать как 32-разрядные, так и 64-разрядные выпуски.

1 голос
/ 20 марта 2014

Если вы используете один 32-битный проект установки, как упомянуто в этом потоке, вы можете столкнуться с проблемами при запуске 32-битных процессов в 64-битных системах в зависимости от того, что вы делаете. Поскольку ваша установка представляет собой 32-разрядный процесс, ОС предполагает, что ей необходимо использовать 32-разрядные ресурсы. На 64-битных машинах у вас есть оба. Например, system32 и SysWOW64. (Как ни странно, system32 содержит 64-разрядные ресурсы, а SysWOW64 - 32-разрядный.) Вы можете заставить ОС использовать 64-разрядные ресурсы с помощью перенаправителя файловой системы SYSNATIVE. Я нашел это полезным при настройке IIS с использованием DISM.exe или PKGMGR.exe в Windows Server 2008R2 и 2012.

...