Inno-setup 32bit和64bit合一

是否可以添加一个文件,说它是64位安装时的“x64.dll”,当它是一个32位的安装时,“x86.dll”?

有可能的。 看看64BitTwoArch.iss示例(特别是Is64BitInstallMode布尔值):

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