Можно ли установить режим установки в inno setup (32 или 64 бит)? - PullRequest
1 голос
/ 20 марта 2012

Я знаю, что директива ArchitecturesInstallIn64BitMode=x64 ia64 может быть установлена, так что Inno Setup примет решение о типе процессора и установит 64-битную версию, если это возможно.

Но мне нужна некоторая функция секции [Code] для установки режима установки (32 или 64).

Возможно ли это вообще?

Пример:

Эта функция возвращает архитектуру установки Java (32 или 64):

function CheckJavaInstallation()

В соответствии с результатом я хочу установить inno setup в правильный режим установки -> Выбор правильных «Program Files» или «Program files (x86)» и в правильном реестре (обычный или wow6432Node).

Спасибо.

Ответы [ 2 ]

4 голосов
/ 21 марта 2012

Я бы предложил вам создать две функции проверки: isjava32 и isjava64 . Затем для каждого файла, записи реестра и т. Д. Вы добавляете две версии с одним из контролеров, например:

[Files]
  Source: "SourceSetupDir32\aFile1.dll"; DestDir: "{pf32}\{#MyAppName}\"; Check: IsJava32;
  Source: "SourceSetupDir64\aFile1.dll"; DestDir: "{pf64}\{#MyAppName}\"; Check: IsJava64;
  ;...
  Source: "SourceSetupDir32\aFile4.dll"; DestDir: "{pf32}\{#MyAppName}\"; Check: IsJava32;
  Source: "SourceSetupDir64\aFile4.dll"; DestDir: "{pf64}\{#MyAppName}\"; Check: IsJava64;

[Registry]
  Root: HKCU32; Subkey: "Software\My Company"; Flags: uninsdeletekeyifempty; Check: IsJava32;
  Root: HKCU64; Subkey: "Software\My Company"; Flags: uninsdeletekeyifempty; Check: IsJava64;

[Code]

  Function IsJava32(): Boolean;
  Begin
    //...
  End;

  Function IsJava64(): Boolean;
  Begin
    Result := Not IsJava32;
  End;
0 голосов
/ 23 октября 2013

Более простое решение можно найти здесь . Для тех, кто ищет ответ на этот вопрос.

...