2014-07-24 17 views
0

我有类似:Innosetup在经过变种的[设置],以程序[代码]

[Setup] 
ArchitecturesInstallIn64BitMode = {#MyArchInstallIn64BitMode} 

[Code] 
procedure CurStepChanged(CurStep: TSetupStep); 
var 
    Value: String; 
    I: Integer; 
    LogList: TStringList; 
begin 
if (ArchitecturesInstallIn64BitMode = 'x64') then begin 
//code 
end else begin 
//else code 
end; 

凡ArchitecturesInstallIn64BitMode是包括。我如何将ArchitecturesInstallIn64BitMode传递到我的过程中?我希望它被宣布为一个字符串,这样我就可以在其上

+0

你问如何确定在脚本中,如果你正在做32位或64位安装? –

+0

如果您只是在寻找架构,您可以在代码中使用它:'ProcessorArchitecture'。 http://www.jrsoftware.org/ishelp/index.php?topic=isxfunc_processorarchitecture – Matt

回答

0

鉴于你已经张贴在你的问题的代码执行字符串操作,你可以这像这样:

if '{#MyArchInstallIn64BitMode}' = 'x64' then begin 

或者,考虑到这是在编译时反正固定的,你可以使用ISPP条件语句:

#if MyArchInstallIn64BitMode == "x64" 
    ... 
#endif 

无论其这种代码真的没有多大意义,开始 - 所有这母鹿s是让你编译时独立的32位和64位安装程序,完全不管用户实际拥有什么。

查看Inno附带的64BitTwoArch.iss示例脚本,该脚本演示了如何制作适用于32位和64位安装的单个安装程序,这是首选的方法。

即使这只有在您的应用程序同时具有32位和64位版本时才有用;如果您的应用程序只有32位(这是最常见的情况),那么您通常不需要执行任何操作 - Inno的默认行为将正确安装在32位和64位Windows上。

相关问题