是否可以在inno设置(32位或64位)中设置安装模式?

时间:2012-03-20 13:57:03

标签: 32bit-64bit inno-setup

我知道可以设置指令ArchitecturesInstallIn64BitMode=x64 ia64,以便Inno Setup决定处理器类型并在可能的情况下以64位安装。

但我需要一些[Code]部分功能来设置安装模式(32或64)。

甚至可能吗?

示例:

此函数将返回Java安装体系结构(32或64):

function CheckJavaInstallation()

根据结果我想将inno设置设置为正确的安装模式 - >选择正确的“程序文件”或“程序文件(x86)”并在正确的注册表中(正常或wow6432Node)。

谢谢。

2 个答案:

答案 0 :(得分:4)

我建议您创建两个检查器函数: 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;

答案 1 :(得分:0)

可以找到更简单的解决方案here。对于那些正在寻找这个问题的答案的人。