Inno setup Inno设置:禁用基于PC架构的组件

Inno setup Inno设置:禁用基于PC架构的组件,inno-setup,Inno Setup,我使用的Inno设置有两个组件:一个用于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 目前: 运行安装程序时,默认情况下会勾选这两个组件 我想要的是:

我使用的Inno设置有两个组件:一个用于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函数
  • 我可能想为此使用一个事件,但我还找不到任何与我的需求相关的东西

注:不幸的是,我无法为每个体系结构安装单独的安装程序。

您可以查看
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;

感谢您为我提供示例文件夹。不幸的是,这对我不起作用,因为这是在每个文件的基础上切换;我正在寻找一个每个组件的基础上。可能像一些组件的“检查”功能。谢谢。我必须在[Setup]中添加以下内容才能正常工作:ArchitecturesInstallIn64BitMode=x64 IA64在安装程序中添加32位和64位的安装程序时也能正常工作,并且您只希望根据架构运行一个安装程序。