2012-11-09 244 views
4

我有一个Inno Script安装程序,它给了用户只安装Firebird 32位版本的选项。现在我有一台64位机器,并且已经使用6位Firebird来确认我的应用程序可以使用它,我希望我的安装程序在32位平台上显示32位Firebird安装程序,并在64位平台上显示64位安装程序。用Inno Setup安装正确版本的Firebird(32bit或64bit)

在“安装操作”部分,我显示了Firebird安装程序的复选框,因此如果未安装Firebird安装程序或未运行Firebird安装(如果已安装Firebird安装程序),则可以选择安装它。

这是我的脚本:

[Run] 

Filename: {app}\Firebird-2.5.1.26351_1_x64.exe; Parameters: "/SILENT /NOCPL"; WorkingDir: {app}; Flags: postinstall skipifsilent 64bit; Check: Is64BitInstallMode; 

Filename: {app}\Firebird-2.5.1.26351_1_Win32.exe; Parameters: "/SILENT /NOCPL"; WorkingDir: {app}; Flags: postinstall skipifsilent 32bit; Check: "not Is64BitInstallMode"; 

的问题是,只有32位安装程序将显示对话框形式。

两个文件都包括在内,以便我的应用程序中都提供安装:

[Files] 

Source: ..\Firebird-2.5.1.26351_1_x64.exe; DestDir: {app} 

Source: ..\Firebird-2.5.1.26351_1_Win32.exe; DestDir: {app} 

我怎样才能让我的安装程序,以显示在64位平台上的64位火鸟安装?

感谢

回答

5

有完全这样做(安装在Win32或32位版本的Win64上64位)中所安装的用InnoSetup的Examples\64BitTwoArch.iss文件的例子。

; -- 64BitTwoArch.iss -- 
; Demonstrates how to install a program built for two different 
; architectures (x86 and x64) using a single installer. 

; SEE THE DOCUMENTATION FOR DETAILS ON CREATING .ISS SCRIPT FILES! 

[Setup] 
AppName=My Program 
AppVersion=1.5 
DefaultDirName={pf}\My Program 
DefaultGroupName=My Program 
UninstallDisplayIcon={app}\MyProg.exe 
Compression=lzma2 
SolidCompression=yes 
OutputDir=userdocs:Inno Setup Examples Output 
; "ArchitecturesInstallIn64BitMode=x64" requests that the install be 
; done in "64-bit mode" on x64, meaning it should use the native 
; 64-bit Program Files directory and the 64-bit view of the registry. 
; On all other architectures it will install in "32-bit mode". 
ArchitecturesInstallIn64BitMode=x64 
; Note: We don't set ProcessorsAllowed because we want this 
; installation to run on all architectures (including Itanium, 
; since it's capable of running 32-bit code too). 

[Files] 
; Install MyProg-x64.exe if running in 64-bit mode (x64; see above), 
; MyProg.exe otherwise. 
Source: "MyProg-x64.exe"; DestDir: "{app}"; DestName: "MyProg.exe"; Check: Is64BitInstallMode 
Source: "MyProg.exe"; DestDir: "{app}"; Check: not Is64BitInstallMode 
Source: "MyProg.chm"; DestDir: "{app}" 
Source: "Readme.txt"; DestDir: "{app}"; Flags: isreadme 

[Icons] 
Name: "{group}\My Program"; Filename: "{app}\MyProg.exe"