A-A+

NSIS脚本的基本结构

2015年07月08日 程序前后处理 阅读 1,844 views 次

一个基本的NSIS安装包制作脚本一般应包含四部分内容:安装程序基本属性的定义、页面、区段和函数。

1、安装程序基本属性的定义

这部分主要对程序的一些通用性属性进行定义,如软件的名称、版本号、开发公司名称、网站、软件许可证、图标等。这些属性可以在除了区段和函数以外的任何地方进行设置。常用的设置命令为Name,InstallDir,!define等。如下所示语句设置程序的名称为"My application"。

!define PRODUCT_NAME "My application"

2、页面

对一般的安装程序来说,应有一个友好的界面,用户可以通过界面进行相应的设置。对于安装程序,典型的页面设置应该显示许可协议页面,允许选择要安装的组件,允许选择要安装的目录,最后安装选择的组件。对于卸载程序,应该显示卸载确认页面,然后执行卸载。NSIS的界面风格有3种可供选择:现代界面、古典界面和静默安装。

静默安装时,脚本中不含有界面定义的语句。

一个典型的古典界面的脚本如下:

Page license
Page components
Page directory
Page instfiles
UninstPage uninstConfirm
UninstPage instfiles

还可以使用Page或PageEx命令进行更多关于页面的设置,或者使用nsDialogs和InstallOptions命令自定义安装页面。

一个典型的现代界面的脚本如下:

; 欢迎页面
!insertmacro MUI_PAGE_WELCOME
; 许可协议页面
!insertmacro MUI_PAGE_LICENSE "LicenceDeclare.txt"
; 安装目录选择页面
!insertmacro MUI_PAGE_DIRECTORY
; 安装过程页面
!insertmacro MUI_PAGE_INSTFILES
; 安装完成页面
!insertmacro MUI_PAGE_FINISH

; 安装卸载过程页面
!insertmacro MUI_UNPAGE_INSTFILES

; 安装界面包含的语言设置
!insertmacro MUI_LANGUAGE "SimpChinese"

; 安装预释放文件
!insertmacro MUI_RESERVEFILE_INSTALLOPTIONS
; ------ MUI 现代界面定义结束 ------

还可以使用!insertmacro和!define命令进行更多安装页面和安装功能的设置,如安装时对开始菜单、桌面快捷启动图标的设置等。

3、区段

区段就是程序安装的主题部分,在这里完成各种目录的创建、文件的解压及程序的初始设置(如注册表的创建,各种配置文件的创建)。其格式如下:

Section [/o] [([!]|[-])区段名] [区段索引输出]

;命令

SectionEnd

如果在一个程序安装包里包含多个可供用户选择的组件,那么可以通过定义不同的区段来实现,每个区段对应一个可供用户选择的组件。如果区段名为空、遗漏或者以一个 - 开头,那么它将是一个隐藏的区段,用户也不能选择禁止它。如果一个区段名为 'Uninstall' 或以 'un.' 为前缀,那么它就是一个卸载程序区段。如果指定了区段索引输出,该参数将被 !defined 为区段索引 (然后可以对它使用 SectionSetText 等)。如果区段名以一个 ! 开头,那么该区段的显示名称将以粗体字显示。如果指定了 /o 开关,则该区段默认为不选。

还可以使用SectionIn、SectionGroup等命令对区段及区段组进行更详细的设置。

4、函数

函数和区段类似,也定义了程序安装时需要执行的各种操作。函数分为两种:用户函数和回调函数。用户函数可以从一个区段里或另一个函数中使用Call指令进行调用,但不能在程序安装中不经调用而直接执行。回调函数可以在某些定义事件之前被调用,比如当安装程序接近完成初始化时会调用.onInit回调函数。

用户函数格式如下:

Function 函数名

;命令

FunctionEnd

函数的调用格式如下:

Section

Call 函数名

SectionEnd

回调函数格式如下:

Function .回调函数名

;命令

FunctionEnd

注:一般函数名称以 "." 开头的函数(例如 ".Whatever") 都是作为回调函数而保留。函数名称以 "un." 开头的函数将会被创建在卸载程序里。因此,普通安装区段和函数不能调用卸载函数,而卸载区段和卸载函数也不能调用普通安装程序的函数。

当创建一个安装程序时,基本的脚本代码都可以通过向导来自动生成。在NSIS主界面中点击VNISEdit进入NSIS的编译环境。点击“文件”-“新建脚本:向导”,即可进入创建脚本的向导界面。根据向导生成基本代码后,可对代码再进行修改和细化,从而完成安装程序脚本的设计。

个人公众号“数字化设计CAX联盟”,欢迎关注,共同交流
标签:
为您推荐:

给我留言

© 坐倚北风 版权所有 严禁镜像复制 苏ICP备15034888号. 基于 Ality 主题定制 AliCMS
联系邮箱:leanwind@163.con,微信公众号:数字化设计CAX联盟

用户登录

分享到: