Inno Setup 2 :语法解析(一)
admin
2023-01-31 02:01:31
0次

背景概述

  Inno Setup安装程序用编译脚本的方式创建,脚本其实就是一个类似 .INI 文件格式的 ASCII 码文本文件(它不像你想象的那么复杂),其支持Pascal语言。 Unicode Inno Setup支持 UTF-8 编码文本文件。
  脚本用一个“.iss” (表示 Inno Setup 脚本) 的扩展名。脚本控制着安装程序的所有方面。由它指定哪些文件将被安装到什么地方,在哪里创建快捷方式,且被命名为什么。
  脚本文件一般可以用安装程序编译器程序内置的编辑器进行编辑。在你编写完脚本后,下一个最终步骤就是选择安装程序编译器中的“编译”。创建完成后,就可以运行根据你脚本编译的安装程序了。按默认,这个安装程序创建在包含脚本文件目录下的名为“输出”目录中。
  如果你想看看它是怎样工作的,启动安装程序编译器,单击“文件 | 打开”,并选择位于 Inno Setup 安装目录下的 Examples 子目录中的一个脚本文件。(你也可以将这些示例脚本作为你自己编写脚本的模板。)

脚本格式概述

  Inno Setup准备了一些段。每个段控制一个不同方面的安装程序部分。每个段使用包含在括号 [ ] 中的段名开始,每个段里是一些相关的条目。
  其中有两种不同类型的段:有些像[Setup]段,条目包含指令名和值(格式为Directive=Value),还有一些像[Files]段,条目被参数分隔。如下示例:

[Setup]
AppName=My Program

[Files]
Source: "MyProg.exe"; DestDir: "{app}"

注意,在脚本中指定多个相同名字的段是合法的。

注释

你可以通过在行起始位置价格分号“;”来编写注释(编译时注释将被忽略)。如下示例:

;这是一条注释...

脚本支持A C-like #include指令,用于将文件包含到脚本中。如法如下:

#include "filename.txt"

如果文件名中未提供完整的路径,编译将在包含#include指令的同一目录中查找。文件名用"compiler:"作为前缀的场合中,将在编译器目录中查找文件。

语法解析

1.段中参数

  所有脚本中的段,除[Setup]、[Messages]、[CustomMessages]和[LangOptions]段外,在包含的行中都可有多个各自的参数。下列是[Files]段示例:

[Files]
Source: "MyProg.exe"; DesDir: "{app}"
Source: "MyProg.chm"; DestDir: "{app}"
Source: "MyProg.txt"; DestDir: "{app}"; Flags: isreadme

每个参数都有一个名字组成,然后跟随一个冒号,然后是一个值。除非特别说明,如果参数未指定,将设定为一个默认值。一行中多个参数用分号隔开,并且可以以任何次序出现。
  参数的值如果包含一个用户定义的字符串时,一般来说用双引号(“”)包含,例如文件名。引号使用不是必须的,但这样做可能会在值中的首位或末位被加入空格,已及分号和双引号。
  在一个双引号中嵌入一个引用值,需要使用两个连续的双引号。示例如下:

"This "" contains "" embedded "" quotes"

安装编译器会将它视作:

This " contains " embeded " quotes

如果你希望参数值是一个单个双引号字符,用四个双引号字符:""""。外面的两个用于包含引用的字符,内部两个用于嵌入单个的双引号字符。

2.常量

  项目脚本中大部分地方可以嵌入常量,这些预定义的字符被包含在括弧{ }中。安装程序或卸载程序会根据用户选择和系统配置将这些常量翻译为文字值。例如,{win}在大部分系统中会被翻译为"C:\WINDOWS"。
  字符 "{" 通常视作为常量开始。如果你想将它作为实际字符使用,需要使用连续两个 "{"。(对于 "}" 则不需要)
  当在常量后面直接跟随一个反斜杠时,如果常量的值末端已经包含了一个反斜杠号,安装程序或卸载程序将自动删除该反斜杠号。因此,如果一个特殊常量值是 "C:\",{constantname}\file将翻译为 "C:\file",而不是 "C:\file"。如果你想防止意外,将反斜杠放入 {}字符中,如 {app}{}。
  常量包括目录常量、外壳文件常量和其他常量。常用常量列举如下:

  • {app}:用户在安装向导中的选择目标位置页中选定的应用程序目录。如:你在项目中指定了{app}\MyProg.exe,而用户选择了"D:\MyProg"作为应用程序目录,则安装程序实际安装在了"D:\MyProg\MyProg.exe"路径。
  • {src}:安装程序文件(即安装包路径)所在目录。如:如在项目中使用了{src}\MyProg_Install.exe,而用户选择在"F:\"目录进行安装。那么,{src} 值当然不会变,而安装程序会将 {app} 值修改为"F:\MyProg.exe"。
  • {srcexe}:安装程序文件的完成路径,如:"D:\FeiQ\FeiQ.exe"。
  • {uninstallexe}:由安装程序提取的下载程序的完整路径名,如"D:\FeiQ\uninstall000.exe"。
  • {log}:日志文件的名称,如果logging没启用,则返回一个空字符。

3.安装脚本段

  安装脚本段 用于解析脚本中各个段的含义及使用方法。后事如何,且听下回分解。

相关内容

热门资讯

空调连续工作多久需要停机休息 空调连续工作的时间取决于多个因素,包括空调的型号、功率、使用环境和维护情况等。一般来说,空调可以连续...
空调哪个符号是除湿的 空调除湿功能通常用一个水滴形状的符号表示。不同品牌和型号的空调遥控器可能会有所差异,但一般来说,除湿...
格力空调多长时间加一次氟利昂 1、一般情况下,空调对氟利昂的使用量是非常小的,所以在空调使用了四年左右的时候再考虑加也没问题。2、...
空调用多长时间需要加氟一次 一般情况下是五年。当出现以下这几种情况时,空调才需要加氟。1、空调的室内机和室外机各有两个接口,当接...
格调生活·C标思享荟:卡萨帝在... 9月12日的郑州龙湖金融岛,夜风轻拂,灯光璀璨。“C标时刻共传奇——卡萨帝思享荟暨20周年品牌盛典郑...
品牌价值破千亿、高端份额持续领... 9月12日,“C标时刻共传奇——卡萨帝思享荟暨20周年品牌盛典郑州站”在郑州龙湖金融岛举办。2026...
空调主板坏了修800还是换新的 空调主板坏了是修还是换新,需要考虑多个因素,以下是一些建议:1. 维修成本:如果维修费用较低,比如 ...
空调开多久需要休息多长时间 问题:空调开多久需要休息多长时间回答:1、在使用空调的过程中,一般空调开7~8个小时左右需要休息2~...
中央空调多长时间清洗一次 1、一般空调开机前清洗一次即可,空调开机中间时段再清洗一次,空调关机时清洗一次,这样比较合理。2、空...
中央空调氟利昂多久加一次 看空调制热和制冷程度,很多人的观点认为氟利昂必须一年放一次,其实这个观点是错误的,理解上面有点偏差,...