Inno Setup:基于PC架构禁用组件

时间:2010-09-22 10:22:56

标签: inno-setup

我正在使用Inno Setup,它有两个组件:一个用于32位计算机,另一个用于64位计算机。这些将在XP / Vista / Win7上运行。

[Components]
Name: Bin/32; Description: 32-bit; Types: full; Flags: dontinheritcheck
Name: Bin/64; Description: 64-bit; Types: full; Flags: dontinheritcheck

目前:

  • 运行安装程序时,默认情况下会勾选两个组件。

我想要的是:

  • 根据用户的计算机,选择适当的默认值(即32位或64位)。
  • 弄清楚不合适的组件也是一种奖励。

到目前为止我发现的是:

  • 我可能想在[Code]部分使用Pascal。
  • IsWin64功能
  • 我可能想要使用一个事件,但我找不到任何与我的需求相关的内容。

P.S。不幸的是,我无法为每个架构安装单独的安装程序。

1 个答案:

答案 0 :(得分:8)

您可以查看C:\Program Files\Inno Setup 5\Examples文件夹,了解有关如何使用单个安装程序为不同体系结构安装程序的示例。

检查这些文件

  • 64BitThreeArch.iss
  • 64BitTwoArch.iss
  • 64Bit.iss

你可以使用这样的东西

[Components]
Name: Bin_32; Description: 32-bit; Types: full; Check: IsX86; Flags: dontinheritcheck
Name: Bin_64; Description: 64-bit; Types: full; Check: IsX64; Flags: dontinheritcheck

[Code]
function IsX64: Boolean;
begin
  Result := Is64BitInstallMode and (ProcessorArchitecture = paX64);
end;

function IsX86: Boolean;
begin
  Result := (Is64BitInstallMode=false) and (ProcessorArchitecture = paX86);
end;