NSIS认识总结

一、NSIS简单介绍

        NSIS,全称为Nullsoft Scriptable Install System,即脚本安装系统,用于创建安装程序(安装包),使得安装程序具备安装、卸载、设置系统设置以及解压文件等功能。此工具在开源许可下发布,对于任何使用都是完全免费的。

        NSIS作为最小可用的脚本安装系统,基于脚本文件,支持变量、函数和字符串操作,可以完全控制安装程序的每个部分。创建一个NSIS安装程序之前必须编写一个NSIS脚本,可使用任何文本编辑器来进行脚本编写。NSIS脚本是一个使用NSIS语法编写的以.nsi为文件后缀的常规文本文件,其中的每一行被看作是一个命令,如果命令过长那么可以可以使用\来连接下一行命令。

        从NSIS v3.0开始,您可以通过设置Unicode属性来选择创建Unicode安装程序。这些安装程序不能在Windows 95/98/ME上工作,但它们允许以操作系统支持的任何Unicode语言显示安装程序。

 

二、NSIS脚本结构

        NSIS脚本包含四个部分:安装程序属性Attribute、页Pages、部分Section以及功能Functions。

1、Attribute

        安装程序的Attribute决定了安装程序的行为和外在风格。通过定义Attribute,可以改变安装程序显示界面的文字以及安装类型的数量等等。大多数这些命令只能在脚本中被设置然后编译输出安装程序,在运行过程中不可以被修改。基础的Attribute指令诸如Name定义安装程序的名称、InstallDir定义安装程序默认的安装目录等等。示例如下:

OutFile ".\${SETUP_EXE_NAME}" 
Name "${PRODUCT_NAME}"
InstallDir "C:\Windows\System32\drivers\"

2、Pages

        非静默安装程序有一组向导页面让用户来配置安装程序,可以通过使用Page命令来设置页的显示。一个典型的设置如下:

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

        以上将显示许可协议,允许选择要安装的组件,允许选择安装目录,最后在instfiles页面中安装所选组件。对于卸载程序,它将显示一个确认页面,并在instfiles页面中卸载。

3、Sections

       对于安装程序来说,用户可以安装一些东西是很常见的,比如选择安装其他的工具、插件、示例等等。每个组件都有自己的一段代码,如果用户选择安装这个组件,那么安装程序将执行该代码,此代码在脚本的section部分中被定义。在组件页面中,每个section对应一个组件,section的名称将显示为组件名字,在用户选择该section对应的组件时将执行section部分的代码。示例如下:

Section "Installer Section"
SectionEnd

Section "un.Uninstaller Section"
SectionEnd

        在以上示例中,有2个section,也可以使用一个section来构建安装程序,如果需要用户来选择安装组件,那么需要编辑多个section。在section中使用的指令可以是提取文件、读取和写入注册表、INI文件或普通文件、创建目录、创建快捷方式等等。最基本的指令是SetOutPath,告诉安装程序在哪里提取文件以及哪个文件提取文件。示例如下:

Section "My Program"
  SetOutPath $INSTDIR
  File "My Program.exe"
  File "Readme.txt"
SectionEnd

4、Functions

        Functions类似sections可以包含脚本代码,不同在于代码被调用的方式。代码被调用的方式有用户函数和回调函数两种类型。

        首先是用户函数。用户函数由用户在section或其他function中使用call指令进行调用。执行完function中的代码后,安装程序将继续执行调用指令之后的指令。如果有一组需要在安装程序中的几个位置执行的指令,那么用户函数非常有用,节省复制的事件也易于维护代码。

        其次是回调函数。一旦确认被定义的事件(例如安装程序开始运行),回调函数将被安装程序调用。调用是可以选择的,例如下面例子,通过定义一个名为.onInit的函数,欢迎用户使用安装程序,那么。NSIS编译器将会通过名字识别到这个函数作为一个回调函数并在安装程序开始运行时进行调用。

Function .onInit
  MessageBox MB_YESNO "This will install My Program. Do you wish to continue?" IDYES gogogo
    Abort
  gogogo:
FunctionEnd

 

三、NSIS安装程序

        通过使用“MakeNSIS”程序编译NSIS脚本(.nsi文件),生成一个可执行的NSIS安装程序。nsi脚本的编译运行,一方面可以通过NSIS开发工具安装程序设置电脑然后右键点击.nsi文件并选择编译,另一方面,可以通过在命令行中通过命令来编译运行,语法如下:

makensis [ option | script.nsi | - ] [...]

        以上命令的参数将按顺序处理,参数的位置不同,命令将不同。如果指定了多个脚本,这些脚本将会被视为一个连接的脚本。MakeNSIS程序的基本使用示例如下:

makensis.exe myscript.nsi

 

 

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值