Inno Setup - Force以32位模式运行

时间:2016-03-20 23:13:31

标签: inno-setup

所以,我已经制作了一个组合安装程序,如果在64位计算机上运行,​​应该安装一组文件,如果在32位计算机上运行则另一个安装另一个文件

我目前使用的是64位计算机。那么是否存在命令行参数或以32位模式运行模拟的任何其他方式?我只想检查它是否按预期工作。

我的代码如下所示:

[Setup]
...
ArchitecturesInstallIn64BitMode=x64

[Files]
Source: "Win64Data\filename.ext"; DestDir: "{app}"; Flags: ignoreversion; Check: IsWin64
Source: "Win32Data\filename.ext"; DestDir: "{app}"; Flags: ignoreversion; Check: not IsWin64

1 个答案:

答案 0 :(得分:2)

没有。没有通用的方法来模拟32位系统。

当然,您可以创建一个32位虚拟机。

虽然针对您的具体情况,您可以完全控制。因此,只需使用允许覆盖命令行开关的自定义函数替换IsWin64 function

[Files]
Source: "Win64Data\filename.ext"; ...; Check: IsWin64Overridable
Source: "Win32Data\filename.ext"; ...; Check: not IsWin64Overridable

[Code]

{ @TLama's function from https://stackoverflow.com/q/14392921/850848 }
function CmdLineParamExists(const Value: string): Boolean;
var
  I: Integer;  
begin
  Result := False;
  for I := 1 to ParamCount do
    if CompareText(ParamStr(I), Value) = 0 then
    begin
      Result := True;
      Exit;
    end;
end;

function IsWin64Overridable: Boolean;
begin
  Result := IsWin64 and (not CmdLineParamExists('/Win32'));
end;
相关问题