【问题标题】:Is it possible to set the install mode in Inno Setup (32 or 64 bit)?是否可以在 Inno Setup(32 位或 64 位)中设置安装模式?
【发布时间】:2019-10-20 15:21:02
【问题描述】:

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

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

有可能吗?

例子:

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

function CheckJavaInstallation()

根据结果,我想将 Inno Setup 设置为正确的安装模式 -> 选择正确的 Program FilesProgram files (x86) 并在正确的注册表中(正常或 WOW6432Node)。

【问题讨论】:

  • 你能发布一个你想要完成的例子吗?我不确定我是否了解您想要做什么以及您的目标是什么。
  • 我稍微阐述了这个问题。
  • 这是一个应该针对 Inno Setup 开发者的问题。您要问的是是否可以创建一个支持两个平台的安装文件。老实说,我只知道一个支持这样做的设置解决方案程序,而不是 Inno Setup。
  • 其实inno setup中一个安装文件可以支持多个平台:stackoverflow.com/questions/4833831/…但是我需要自己确定安装模式,而不是inno setup。

标签: 32bit-64bit inno-setup


【解决方案1】:

我建议您创建两个检查器函数:IsJava32IsJava64。然后对于每个文件、注册表项等,您使用其中一个检查器添加两个版本,例如:

[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;

【讨论】:

    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 2020-08-23
      • 1970-01-01
      • 2011-06-17
      • 2015-09-21
      • 2016-09-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-07-13
      相关资源
      最近更新 更多