【Qt】NSIS发布安装包程序

发布于:2023-01-28 ⋅ 阅读:(807) ⋅ 点赞:(0)

前面说过了用 windeployqt 动态编译可执行程序,但整个包还是散的。

我们常见的软件都会有一个安装程序,安装后,会生成安装目录,还可以创建桌面快捷方式等等。

那么,如何将我们编译好的Qt release程序打包成安装程序呢?这里记录一下NSIS+NISEdit方法。

1.准备部署软件

我这里用的版本如下:
nsis-3.02.1(最新版nsis是包含了下面的nisedit的)
在这里插入图片描述
nisedit2.0.3

在这里插入图片描述

2.用nisedit制作发布脚本

1.新建向导脚本

在这里插入图片描述
2.填写应用信息

在这里插入图片描述
3.设置图标、语言等

在这里插入图片描述
4.设置目录与授权信息

在这里插入图片描述
5.选择打包的程序文件

在这里插入图片描述
6.设置快捷方式

在这里插入图片描述
7.安装后运行方式(只有一个.exe就默认)

在这里插入图片描述
8.设置卸载

在这里插入图片描述
9.完成向导

在这里插入图片描述
生成的脚本如下,可自定义更改:

在这里插入图片描述

比如要在安装开始的时候选择语言,可以添加以下脚本:

; Language files
!insertmacro MUI_LANGUAGE "English"
!insertmacro MUI_LANGUAGE "SimpChinese"

;初始化函数
Function .onInit
  Push ""
  Push ${LANG_ENGLISH} ;添加英文代码 语言代码是系统变量,多语言引入后,自动加载,拼接方式是“LANG_语言”,可以查看NSIS手册,LANG_ENGLISH的编号为1033,LANG_SIMPCHINESE为2052;
  Push "English"
  Push ${LANG_SIMPCHINESE}   ;添加简体中文选项
  Push "简体中文"
  Push A ; A means auto count languages for the auto count to work the first empty push (Push "") must remain
  LangDLL::LangDialog "Installer Language" "Please select the language of the installer" ;显示语言选择对话框
  Pop $LANGUAGE ;获得用户对于语言的选择结果 ‘$LANGUAGE’是多语言变量,在安装程序结束后,语言代码会存储在这个变量中,手动修改‘$LANGUAGE’的值后,安装包会重新选择最匹配的语言,参考最上面NSIS手册中选择界面语言步骤
  StrCmp $LANGUAGE "cancel" 0 +2
  Abort
  StrCmp $LANGUAGE 2052 ZH_INI EN_INI
  EN_INI:
    ;想干啥干啥
    Goto END
  ZH_INI:
        ;想干啥干啥
  END:
FunctionEnd

3.用NSIS软件编译脚本

加载上一步生成的脚本,编译即可:

在这里插入图片描述
测试安装完成后,生成桌面快捷方式如下:

在这里插入图片描述
以上。


网站公告

今日签到

点亮在社区的每一天
去签到