目前在 Windows 系统中有 32 位和 64 位之分,那么我们在开发或者使用程序时也有 32 位程序和 64 位程序。有时候为了方便,我们在开发的程序想要把这些文件集成在一个安装包内,那么使用 Inno Setup 就可以轻松实现。
默认情况下我们使用 Inno Setup 打包的只能为一种应用,而通过修改脚本代码就可以在一个安装包中包含 32 位或 64 位文件,然后在安装时会根据系统自动释放对应系统的应用程序。
下面就和一起看看 Inno Setup 包含 32 位或 64 位程序的脚本代码吧。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | // -64BitTwoArch.iss- // 演示如何安装为两个不同的程序构建的程序 // 使用单个安装程序的体系结构(x86 和 x64)。
// 有关创建 .ISS 脚本文件的详细信息,请参见文档!
[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 // “ ArchitecturesInstallIn64BitMode = x64” 请求在 x64 上以“ 64 位模式”完成安装,这意味着它应使用本机 64 位 Program Files 目录和注册表的 64 位视图。 // 在所有其他体系结构上,它将以“ 32 位模式”安装。 // 注意:我们未设置 ProcessorsAllowed,因为我们希望此安装在所有体系结构上运行(包括 Itanium,因为它也能够运行 32 位代码)。
[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" |
以上就是 Inno Setup 通过标识不同文件中的版本来在安装的时候释放对应文件,从而可以达到一个安装包包含 32 或 64 位程序文件。