Install the correct version of Firebird (32 bit or 64 bit) using Inno Setup

I have an Inno Script installer that gave the user the option to install only the 32-bit version of Firebird. Now that I have a 64-bit machine and I used 6-bit Firebird to confirm that my application works with it, I want my installer to show the 32-bit Firebird installer on 32-bit platforms and the 64-bit installer on 64-bit platforms.

In the "Installation Actions" section, I show a check box for the Firebird installer, giving the user the option to install it if it is not installed or does not start the Firebird installation, if they already have it.

This is from my script:

[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"; 

The problem is that only a 32-bit installer is displayed in the dialog box.

Both files are included, so both are available during application installation:

 [Files] Source: ..\Firebird-2.5.1.26351_1_x64.exe; DestDir: {app} Source: ..\Firebird-2.5.1.26351_1_Win32.exe; DestDir: {app} 

How can I make the installer show the 64-bit Firebird installer on 64-bit platforms?

thanks

+4
source share
1 answer

Here is an example of how to do this (installing a 32-bit version on Win32 or a 64-bit version on Win64) in the Examples\64BitTwoArch.iss file that is installed with InnoSetup.

 ; -- 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 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" 
+5
source

Source: https://habr.com/ru/post/1445146/


All Articles