“NSIS (Nullsoft Scriptable Install System) 是 Windows 下的一个工具,它允许程序员 来创建这样的安装程序。它发布于一个开源的协议并且对于任何使用来说都是完全免费的。” --NSIS用户手册 Foobar是我听听音乐的工具,而且使用了Winamp那么长时间了,对Nullsoft非常熟悉,但是 可能是由于整个公司的软件开放程度不高吧,具体它有些什么特长的东西一直不清楚。所以第 一次听说有一个NSIS的东西可以方便灵活的定制安装程序,是Nullsoft退出的,我还有些惊讶。 “NSIS 创建的安装程序能够安装、卸载、设置系统设置、解压文件等等。因为它基于脚本文 件,你可以完全的控制安装程序的每一部分。脚本语言支持变量、函数、字串操作,就像一个 普通的程序语言一样 - 但是设计来创建安装程序。即使有那么多的特性,NSIS 仍然是最小的 安装程序系统。在默认选项下,它仅增加了 34 KB 的开销。”--NSIS用户手册 不过看到NSIS.sourceforge.net的若干图标,一下子我就想起来了,原来好多的软件都使用 它制作安装程序,特别是那个带一个向下箭头的圆球图标老是出现在开源软件的安装程序中。 结果我都不知道这个东西,是在是有些不好意思了。 字串5
说起来要学习制作一个基于NSIS的安装程序可不是一个小时就可以的事情(恐怕要两个小时 ;), 因为制作一个安装程序需要学习NSIS的脚本编写,这基本上就是一门新的语言,是有一定 难度的。我自己的感觉是这种脚本语法简单,结构清除,由于使用了插件的方式扩展,功能相 当的强大(网络上有不少各式各样的插件,自己也可以方便的编写)。如果运用熟练几乎可以 随心所欲的操控安装程序,文件,网络以及操作系统等等。而编写简单的安装程序更是手到擒 来,比如下面的一段相信大家一看就知道要做什么了。 ;---一个简单的安装程序 # # 定义产品的信息,供以后程序使用 # !define PRODUCT_NAME "TestSetup" !define PRODUCT_VERSION "1.0" !define PRODUCT_PUBLISHER "My company, Inc." !define PRODUCT_WEB_SITE "http://www." !define PRODUCT_SERIAL_NUMBER "123" ; 序列号 !define TEMP_SN $R0 ; 处理序列号对话框中用到的临时变量 # # 显示的各个页面定义 # Page license # 许可声明显示页 Page components # 选择安装组件 Page directory # 指定安装目录 字串4 Page instfiles # 安装拷贝显示页 # # 设置总体的信息 # Name "${PRODUCT_NAME} ${PRODUCT_VERSION}" OutFile "${PRODUCT_NAME}-${PRODUCT_VERSION}.exe" ShowInstDetails show InstallDir "d:\tmp" LicenseData "readme.txt" # 我在这里默认只支持中文方式的安装 LoadLanguageFile "${NSISDIR}\Contrib\Language Files\SimpChinese.nlf" # # 各个段的详细定义(根据选择组件,执行各个区段) # Section "说明文件" SetOutPath "$INSTDIR" # 将这里的文件安装到目标目录中。 SetOverwrite ifnewer File "license.txt" "readme.txt" SectionEnd Section "正文" SetOutPath "$INSTDIR" # 将这里的文件安装到目标目录中。 SetOverwrite ifnewer File "About NSIS.txt" DetailPrint "正文安装结束了!" SectionEnd ;----程序结束 像是上面这样的一个简单脚本也许就可以满足很多人的要求了,而许多商业安装程序工具生 成的结果也不过如此,可见NSIS这个开源的工具还是非常强大的,怪不得好多著名的软件都使 用它制作自己的安装程序(参见nsis的users)。在NSIS的Wiki上有好多非常实用的脚本和插 字串9 件供人们下载使用,论坛内的讨论也非常切入要害。更加难能可贵的是NSIS支持中文的程度非 常的高,国内不少有志人士为了这个东西作出了巨大贡献。所以文档和软件全部都有中文版本 ,而像HM-NIS Edit这样的NSIS脚本编辑软件也是也从源代码级别进行了汉化,使用中完全没 有语言的障碍。 |
|
来自: ShangShujie > 《toolkit》