前言
Qt编译之后需要打包发布,并且发布给用户后需要增加一个安装软件,通过安装软件可以实现Qt软件的安装;用于安装软件的软件有很多,这里主要介绍InstallShield使用的流程;
使用windeployqt打包Qt编译后的程序
Qt程序编译后是这样的文件,没有包括依赖的dll环境;此时发布给别人会报错缺少dll文件,因此需要将dll文件打包发布;
方法一:
如果是VS+Qt联合编译的,需要添加一个VS的环境变量。如果是Qt单独编译,则直接跳到3
- 找到VS的安装目录,比如我的是默认安装在C盘。复制路径
cpp
C:\Program Files\Microsoft Visual Studio\2022\Community\VC
- 打开环境变量,添加一个系统变量,变量名为VCINSTALLDIR,变量值为
cpp
C:\Program Files\Microsoft Visual Studio\2022\Community\VC
- win+R输入cmd打开命令窗口,通过cd /d命令进入到我们要操作的文件夹(.exe所在文件夹)
cpp
cd /d C:\Users\BaiYang\Desktop\asd
或者直接在文件窗口地址栏输入cmd回车。
- 执行 "windeployqt ExamSys.exe" 命令,换成自己的.exe名字
方法二:
- 先找到windeployqt.exe的位置
比如说,我的qt安装位置是:
cpp
C:\Qt\Qt5.9.6\5.9.6\msvc2015_64\bin\windeployqt.exe
命令行切换到此位置
- 再找到自己生成的exe文件位置,比如说,我的是:
cpp
G:\bin\Test.exe
- cmd进入命令行,执行命令
cpp
C:\Qt\Qt5.9.6\5.9.6\msvc2015_64\bin\windeployqt.exe G:\bin\Test.exe
windeployqt执行后会将依赖的dll文件打包在一起;
使用InstallShield软件发布Qt打包后的文件,制作成程序压缩包
下载及安装InstallShield
安装后的InstallShield软件界面是:
第一步
点击Home->New,选择Basic MSI,这里是管理整个项目的意思,给项目起个名字。
名称为test,会在G盘建立一个test.ism的文件;
第二步
软件的Installation Designer。这里是整个项目各个参数的设置,可以对项目细节完善。可以先用快捷方式先确定好项目,再从Installation Designer这里完善。
第三步
先用快捷方式完成项目。点击view->ProgectAssistant。进入助手界面。
第四步
按照最下面一行的提示,逐步修改项目。
- 确定软件信息
- 这里可以直接选默认选项
-
最重要的是这里,确定安装文件,将自己的exe文件和依赖的dll文件添加到文件内;文件夹选择Add Folders(注意软件很容易卡死,随时点击save项目,不然又要从头开始)
在ProgramFilesFolder上面就是CommonFileFolder,这里存放的是软件的一些配置文件等;也可以将这个路径设置成系统环境变量,将dll放在这里,这样你可以安装一个纯exe文件,程序会从系统路径内寻找dll文件;
像我自己的电脑里便有Common Files里面有之前安装软件存放的配置文件;
-
这两个可以跳过默认,也可以自己选择
-
这里设置的是:是否需要许可证文件、是否需要用户填写公司名称,用户是否自定义选择安装位置,用户是否可以选择完整安装/部分安装,用户是否可以选择安装完成后打开软件;
-
选择安装时的语言
-
发布程序安装包
点击Build Installation便开始制作安装包,等待制作完成
第六步
若是用户安装时需要设定用户的系统变量,比如说path,可以跳回到Installation Designer界面,选择Environment Variables;
增加系统环境变量
设置环境变量Path
对这里的参数说明:
On Install:
Set:已经存在的环境变量
Create:创建一个新的环境变量
Placement:
Replace:替换以前的值
Prefix:在前面追加值
Append:在后面追加值
On Uninstall:
Remove:在卸载的时候删除
Leave:在卸载的时候保留
Type:
User:用户变量
System:系统变量
以上流程走完就是一个简易的InstallShield发布过程,当然,比如说setup.exe的ICON设置等都可以在Installation Designer慢慢完成;
验证发布
上述流程走完之后,便可以在test.ism同级目录下,生成一个test文件夹;
在DISK1目录下会看到安装程序,点击会看到安装过程;
至此,Qt编译生成的exe发布完成;