所以,我已经制作了一个组合安装程序,如果在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
答案 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;