目前在 Windows 系统中有 32 位和 64 位之分,那么我们在开发或者使用程序时也有 32 位程序和 64 位程序。有时候为了方便,我们在开发的程序想要把这些文件集成在一个安装包内,那么使用 Inno Setup 就可以轻松实现。
默认情况下我们使用 Inno Setup 打包的只能为一种应用,而通过修改脚本代码就可以在一个安装包中包含 32 位或 64 位文件,然后在安装时会根据系统自动释放对应系统的应用程序。
下面就和大眼仔(www.dayanzai.me)一起看看 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 位程序文件。
原创文章,作者:kepupublish,如若转载,请注明出处:https://blog.ytso.com/tech/courses/141542.html