目录
1.
NSIS 基本知识..........................................................................................................................................1
1.1 安装属性 ...........................................................................................................................................1
1.2 安装页................................................................................................................................................1
1.3 区段 .................................................................................................................................................... 2
1.4 函数 .................................................................................................................................................... 3
1.5 脚本的编写方式.............................................................................................................................3
2.准备编译环境 .................................................................................................................................................... 4
3.编辑/IDE 工具.................................................................................................................................................4
4.新建脚本:向导................................................................................................................................................5
5.部署 WEB 应用.................................................................................................................................................13
1.NSIS 基本知识
一个 NSIS 脚本包括 安装属性(Installer Attributes)、区段
(Sections)和函数(Functions),此外还可以使用编译命令来对编
译过程进行控制。
1.1 安装属性
安装属性决定了安装包的行为以及安装包运行的风格和 UI 等内
容。通过修改属性可以配置安装过程中出现的显示信息。
1.2 安装页
一个非静默安装的安装包一般会包含许多向导页面一步步引导用户
完成安装过程,可以通过设置 Page 命令来显示或者隐藏向导页面,
一般来说典型的安装页面包括:
1. Page License
2. Page components
3. Page directory
4. Page instfiles
5. UnistPage uninstConfirm
6. UninstPage instfiles
1.3 区段
在我们安装程序的过程中可以选择安装不同的部分,例如在安装
Office 套件的过程中,可以选择只安装 Word、Excel 而不去安装其
它软件,当我们勾选安装部分之后,NSIS 对应的脚本就会执行,这
其中的每一项对应脚本文件中的一个区段。
区段的名称会显示在安装选项中,例如上面所说的安装 Office 的
脚本类似于下面这种方式:
Section "Microsoft Word"
... 具体的 word 安装代码
SectionEnd
Section "Microsoft Excel"
... 具体的 excel 安装代码
SectionEnd
Section "Microsoft PowerPoint"
... 具体的 powerpoint 安装代码
SectionEnd
Section "Microsoft OneNote"
... 具体的 onenote 安装代码
SectionEnd
此外在卸载程序的过程中也会出现区段,区段的名称已 un.开头,
例如:
Section "un.Uninstaller Section"
SectionEnd
区段中使用的代码和安装属性中使用的代码有很大的不同,区段
中的代码是在用户计算机上执行的,这些命令主要用来解压文件、读
取和写入注册表、创建文件夹、创建快捷方式等。在区段中最重要的
一个基本命令是 SetOutPath,用来将文件解压到指定的目录中。
1.4 函数
函数主要分为两种类型:
1. 用户自定义函数
2. 回调函数
用户自定义的函数可以在区段或者其他函数中通过 Call 命令来
调用,用户自定义的函数在调用它们的过程中被执行。
回调函数会被安装程序自动调用(在某个事件发生的时候:例如
在安装过程开始的时候)回调函数在 NSIS 脚本中是可选的。经常使
用的一个函数式.onInit,这个函数会在安装过程开始的时候被调用,
例如可以做一个欢迎画面:
Function .onInit
MessageBox MB_YESNO "This will install My Program. Do you wish to continue?" IDYES gogogo
Abort
gogogo:
FunctionEnd
1.5 脚本的编写方式
在脚本编写过程中可以使用 StrCmp、IntCmp、IfErrors、Goto
等实现条件执行(类似 C 语言中的 if…else)和循环执行(类似 C
语言中的 while),可以通过脚本库中提供的 LogicLib 来简单的编写
代码,要是用 LogicLib 需要在脚本文件中包含头文件!include
LogicLib.nsh
可以使用 Var 命令来定义变量,变量都是全局的变量,可以在区段和函数中使用,定义变量的方式如下:
Var BLA ;定义了一个 BLA 的变量
Section bla
StrCpy $BLA “123” ;使用 BLA 变量,将它赋值为 123
Seciton End
在脚本的编写过程中,脚本本身提供一个堆栈,可以通过 Push
将变量压入堆栈中,使用 Pop 可以弹出栈顶变量。
2.准备编译环境
下载 NSIS 最新的安装包,下载地址为:nsis.sourceforge.net/Download。
根据向导一步步安装即可,安装完成后会在系统目录上创建 NSIS 目录,里面有
用户手册和一些脚本例子,完成编译环境安装后,在脚本文件.nsi 右键点击会
出现 NSIS 快捷菜单。如下图所示:
3.编辑/IDE 工具
最简单的是用文本文件,其实任何可以编辑文本文件的工具都可
以,但一是格式不好看,再就是对于一个才开始编辑 NSIS 脚本的新
手来说脚本显示不友好。
下载 HM NIS Edit 最新版本,这是一个针对 NSIS 的免费的编辑/
集成开发工具,安装后就可以使用了。
不光让脚本更容易读写,提供新建脚本向导功能,通过向导生成
的脚本省了很多功夫,通过生成的这些脚本也可以理解 NSI 脚本的结
构和一些语法信息,再就是通过菜单 NSIS 可以直接编译脚本,脚本
编译过程的输出信息会在输出界面显示,错误直接定位,界面如下图
所示:
4.新建脚本:向导
打开 HM NIS Edit,点击菜单中的“文件”➡“新建脚本:向导”,会
有向导一步步让我们输入信息,最后根据我们输入信息生成.nsi 脚
本文件,下面我们一步步演示:
点击下一步
填写完成应用程序基本信息,点击下一步
选择预演,用户界面和压缩算法后点击下一步
填写好授权文件地址,点击下一步
应用程序相关的文件,默认的文件都可以删除掉,如果是网站程序的
话,点击下图中红色方框中按钮,添加网站目录。
如果网站文件比较多的话,需要等待比较长的时间。文件添加完成界