一、项目介绍

介绍一个我开发的开源NSIS UI插件 NSIS-UI-Plugin,基于 NSIS-UI-Plugin 插件我们可以快速使用NSIS制作类似QQ等软件那样的安装包。

该插件默认使用Qt作为界面库(不需要编译Qt静态库,可以使用Qt动态库),但也可以很方便的切换使用其他界面库,如DuiLib等。

项目地址:

https://github.com/winsoft666/NSIS-UI-Plugin

二、依赖项

使用NSIS-UI-Plugin插件需要提前安装如下工具。

2.1 NSIS

https://nsis.sourceforge.io/Download 下载NSIS并安装,新增系统环境变量NSIS_DIR为NSIS安装目录。

2.2 Python

之所以需要安装Python,主要是为了执行NsisScriptGenerate.py脚本。

Python.exe所在目录添加到Path环境变量。

2.3 Qt

因为插件默认使用Qt作为界面库,所以需要安装Qt。

Qt安装包会默认将安装目录添加QTDIR环境变量,如果没有自动添加,则需要手动添加。

三、开始使用

3.1 编译NSIS-UI-Plugin

安装完上面依赖项之后,编译NSIS-UI-Plugin\NSIS-UI-Plugin.vcxproj工程,Visual Studio的生成后事件会自动将目标文件(Debug版:nsQtPluginD.dll, Release版:nsPlugin.dll)拷贝到NSIS插件目录(NSIS_DIR\Plugins\x86-unicode)。

3.2 生成安装包

VimeoSetup是一个关于如何在NSIS中使用该插件的示例工程:

1
2
3
4
5
App                -- 放置需要打包到安装包中的文件
VCRuntimeDLL -- 放置VC++运行时库文件(Debug版和Release版),Qt界面库默认采用MD模式编译,运行时需要依赖VC++运行时库
vimeo-template.nsi -- NSIS模板文件,文件名的`-template`后缀固定的,NsisScriptGenerate.py会根据该模板生成vimeo.nsi
build-setup [debug].bat -- 生成Debug版的安装包,即使用Debug版的Qt和NSIS-UI-Plugin
build-setup [debug].bat -- 生成Release版的安装包

将需要打包的文件放置到App目录,然后运行build-setup.bat生成安装包。

NsisScriptGenerate.py脚本功能:因为NSIS没有提供获取文件释放进度的功能,所以NsisScriptGenerate.py遍历App目录,采用File命令挨个添加文件,并调用插件接口SetInstallStepDescription通知安装详情。

四、截图

仅用作示例,你可以使用任意界面库来创建任意的安装/卸载界面。