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

问题描述 投票:2回答:2

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

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

甚至有可能吗?

示例:

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

function CheckJavaInstallation()

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

32bit-64bit inno-setup
2个回答
5
投票

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

0
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.