Nullsoft Install System是一个非常好用的安装包制作工具,通过它不仅可以高效的将程序制作成安装程序,还可以设置程序的安装、卸载、设置系统设置、解压文件等等。软件很小巧,使用起来也很方便,可以为你快速制作各式各样的安装包。还可以对安装界面进行美化,让你的程序安装过程看起来更加高端。
软件特色
1、很小的额外开销
NSIS 具有体积小、速度快和高效率的特点。当其它安装程序动辄需要几百 KB 或好几 MB 的安装程序数据,而一个具有完整功能的 NSIS 安装程序仅占用了 34 KB 的额外开销。
2、兼容所有主流的 Windows 操作系统
你可以创建兼容于 Windows 95, Windows 98, Windows ME, Windows NT, Windows 2000, Windows XP, Windows Server 2003 和 Windows Vista 的安装程序。
3、独特的压缩方法
你可以在(ZLib, BZip2, LZMA)这三种完整的压缩方法中选择其一。新的 LZMA 压缩具有比其它通用压缩方法更好的效果。而且你不需要大块的外壳释放文档模块或其它的应用程序。该压缩方式已经包含在那 34 KB 的额外开销里。
4、基于脚本
不像其它的安装系统仅能基于文件列表和注册表操作来创建安装程序,NSIS 有一个强大的脚本语言。该脚本语言设计来专门制作安装程序并有可以帮助你执行任何安装任务的命令。你可以很容易的添加自定义逻辑和处理不同的升级、版本检测等。 在 NSIS Wiki 你可以找到更多。
5、在一个安装程序里支持多语言
脚本语言提供的命令使你可以在目标系统上使用。本身已经包含超过 40 种翻译,但是你也可以创建你自己的语言文件。RTL(从右至左)语言比如阿拉伯语和希伯来语也得到完整的支持。
6、许多功能和对目标系统的检测
脚本语言提供的命令使你可以在目标系统上使用。从简单的功能比如创建文件夹和注册表编辑到文本、二进制文件修改,修改环境变量和重启系统。使用提供的插件你甚至可以使用 Windows API 。
7、自定义对话框和界面
你可以创建自定义的向导页面来获取用户的输入或结合配置选项。 NSIS 包含了一个典型界面和新式向导界面,但是你也可以创建自己的界面。
8、插件系统
NSIS 可以由能和安装程序对话的插件来扩展。他们可以由 C, C++, Delphi 或其他语言并且可以用来执行安装任务或扩展安装程序界面。使用这些插件你只需要一行代码。插件也可以像其它安装数据一样被压缩并且仅在你使用它们的功能的时候被包含进来。
9、支持网络安装,给文件打补丁
NSIS 的发行包含了一系列插件使你可以从互联网下载文件、连接互联网、对存在的文件打补丁等。
10、方案综合、不同的发布和自动建立
NSIS 编译器有强大的预处理器。这使你很容易的整合多个方案到单个安装程序或自动的产生安装程序构造。你也可以产生不同的版本比如精简版和完全版。
11、容易且人性化的可读文件的格式
NSIS 脚本格式和用于界面对话的格式是容易的、人性化的且易读的,所以你可以使用你喜欢的编辑器来编辑你的文件。
安装方法
注意:首先需要安装NIS Edit和Nullsoft Installation System(NSIS)两款软件才可进行。
1、安装上述两款,启动NIS Edit,在“文件”菜单中“新建脚本:向导”=>下一步”。
2、设置应用程序信息,如软件名称、版本、出版人等。
当然最一个网站可以留空,如果设置了,则安装包会生成一个对应网址的“Inte.net 快捷方式”。
3、设置程序选项,如安装包图标、安装程序文件、安装包语言[这里选“SimChinese”]、用户图形界面及压缩方式等。
我们可以选用默认值,也可以点击对应项目的按钮或下拉菜单更改设置。
4、设置安装目录及授权信息,点击“下一步”
5、选定程序文件,即我们要打包的文件,可以使用默认的“Mainsection”,
也可以根据需要进行更改或新建组别
如果组比较多时
你也可以设置是否“允许用户选择要安装的组件”。
完毕后进行“添加文件”操作,选定我们要打包的文件。
完成自动后返回的图5的界面,执行下一步操作。
6、设置开始菜单中文件夹名称及快捷方式,这里我们使用默认值,按“下一步”:
7、指定安装后要运行的程序,同上用默认值并设置相关运行参数及描述。
如果你和我一样懒的话,或不想在安装运行任何程序,则留空即可。
8、这步是有关卸载程序的相关信息,如卸载时的提示、卸载的图标等。
9、至此完成向导,如图10,,钩选“保存脚本”、“转换文件路径到相关路径”及“编译脚本”
提示保存脚本路径并自动编译脚本,我们可以按或F9运行安装程序进行预览,向导产生的安装包效果图如图所示。
软件功能
1、生成包含可执行安装程序的外壳
2、支持 ZLIB, BZIP2 和 LZMA 数据压缩( (文件可以单独或同时压缩)
3、支持卸载程序 (安装程序可以生成卸载程序)
4、可自定义的用户界面 (对话框、字体、背景、文本、检测标记、图像等等)
5、典型和新式向导界面
6、完整的多语言,支持一个安装程序有多个语言。自带超过 40 种语言翻译,你也可以建立你自己的
7、页面系统:你可以添加标准向导页面或自定义页面
8、用户可以选择安装组件,树形组件列表
9、多个安装配置 (通常最小、典型、完全)和自定义配置
10、安装程序使用 CRC32 校验和作为自我验证
11、除了压缩的安装数据大小外只需要很小的系统开销 (默认为34 KB)
12、可以显示文本或 RTF 格式的许可协议
13、可以通过注册表检测目标目录
14、易用的插件系统 (经包含大多数插件用于创建自定义对话、互联网连接、HTTP 下载、文件打补丁、调用 Win32 API 等等)
15、安装程序最高限制可以达到 2 GB
16、可选性的静默安装模式用于自动安装
17、预处理器支持定义符号、宏、条件编辑、标准预定义
18、有意思的类似于 PHP 和汇编的编程体验(包含用户变量、堆栈、流程控制等等)
常见问题
1、我已经有一个有效的 NSIS 脚本。我可以利用它来创建 Unicode 安装程序吗?
是的。大多数脚本可以很容易地转换为 Unicode 安装脚本。通常,需要做的就是将 NSI 脚本文件从 ANSI 文本文件转换为 UTF-16LE 文件或从 2.42.3 开始,UTF-8 文件。这可以通过 Window 的 Notepad++.exe 来完成,它有一个选项可以将文件保存为 Unicode。另一种方法是使用a2u 转换器。
请注意,如果您在 NSI 脚本中仅使用 ASCII 字符,那么从 2.42.3 开始,它将被识别为 UTF-8,并且不需要重新编码。
唯一棘手的部分是您是否使用系统插件。确保您没有调用特定于 ANSI 的 Win32 API。大多数此类 API 以字母 A 结尾,例如:MessageBoxA()。此类 API 应转换为tchar版本(例如 MessageBox())或宽字符版本(例如 MessageBoxW())。
此外,从版本 2.38.1 开始,参数类型说明符 't' 的作用类似于 TCHAR*。它将在 NSIS 的 Unicode 版本中指定一个 Unicode 字符串,并将在 ANSI 版本中指定一个 ANSI 字符串。这应该使您的脚本转换更容易。
一些像 GetProcAddress() 这样的 Windows API 只接受 ANSI 字符串,所以你仍然应该仔细查看你的系统调用。此类 API 应使用新的“m”作为类型说明符。
2、Unicode NSIS 支持哪些 Unicode 编码?
Unicode NSIS 支持 UTF-16LE,这是 Windows 默认的,从 2.42.3 开始,它支持 UTF-8。UTF-16LE 要求文件前面有一个 BOM。UTF-8 不需要 BOM,Unicode NSIS 将读取带或不带 BOM 的 UTF-8 文件。例如,Notepad.exe 会将 BOM 添加到 UTF-8 文件,但大多数 Unix 工具不会,除非明确告知。无论如何,所有的 NSI、NSH 文件都应该采用 Unicode NSIS 支持的某种 Unicode 编码。许可证文件还应该是 RTF 文件或 Unicode 文本文件(UTF-16LE 或 UTF-8)。
3、Unicode NSIS 的大字符串版本在哪里?
您从 2.37.3 版开始下载的是NSIS 的大字符串版本。对于短字符串,修改环境路径是危险的,因为许多用户的环境路径长度超过 1024 个字符。所以我选择将 8196 设为 NSIS Unicode 版本的默认字符串长度。我使用更大的字符串长度创建的安装程序的大小几乎没有任何差异。通过压缩,字符串大小的差异似乎无关紧要。但是,此站点上提供的 ANSI 版本是短字符串版本(1024 个字符长)。这是为了使其与官方 NSIS 可分发文件保持一致。