Inno Setup: отключение компонентов на основе архитектуры ПК - PullRequest
2 голосов
/ 22 сентября 2010

Я использую Inno Setup с двумя компонентами: один для 32-битных машин и один для 64-битных.Они будут работать на XP / Vista / Win7.

[Components]
Name: Bin/32; Description: 32-bit; Types: full; Flags: dontinheritcheck
Name: Bin/64; Description: 64-bit; Types: full; Flags: dontinheritcheck

В настоящее время:

  • Оба компонента по умолчанию отмечены при запуске программы установки.

То, что я хочу:

  • Подходящее значение по умолчанию (т. Е. 32-битное или 64-битное отмеченное) в зависимости от компьютера пользователя.
  • Преодоление неподходящего компонента также будет бонусом.

На данный момент я нашел следующее:

  • То, что я, вероятно, хочу использоватьПаскаль в разделе [Код].
  • Функция IsWin64
  • Что я могу использовать для этого Событие, но пока не могу найти что-либо связанное с моими потребностями.

PS К сожалению, я не могу иметь отдельных установщиков для каждой архитектуры.

1 Ответ

8 голосов
/ 22 сентября 2010

вы можете проверить в папке C:\Program Files\Inno Setup 5\Examples примеры того, как установить программу для разных архитектур с помощью одного установщика.

проверить эти файлы

  • 64BitThreeArch.iss
  • 64BitTwoArch.iss
  • 64Bit.iss

Вы можете использовать что-то вроде этого

[Components]
Name: Bin_32; Description: 32-bit; Types: full; Check: IsX86; Flags: dontinheritcheck
Name: Bin_64; Description: 64-bit; Types: full; Check: IsX64; Flags: dontinheritcheck

[Code]
function IsX64: Boolean;
begin
  Result := Is64BitInstallMode and (ProcessorArchitecture = paX64);
end;

function IsX86: Boolean;
begin
  Result := (Is64BitInstallMode=false) and (ProcessorArchitecture = paX86);
end;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...