使用windeployqt和InstallShield打包发布Qt软件的流程

前言

Qt编译之后需要打包发布,并且发布给用户后需要增加一个安装软件,通过安装软件可以实现Qt软件的安装;用于安装软件的软件有很多,这里主要介绍InstallShield使用的流程;

使用windeployqt打包Qt编译后的程序

Qt程序编译后是这样的文件,没有包括依赖的dll环境;此时发布给别人会报错缺少dll文件,因此需要将dll文件打包发布;

方法一:

如果是VS+Qt联合编译的,需要添加一个VS的环境变量。如果是Qt单独编译,则直接跳到3

  1. 找到VS的安装目录,比如我的是默认安装在C盘。复制路径
cpp 复制代码
C:\Program Files\Microsoft Visual Studio\2022\Community\VC
  1. 打开环境变量,添加一个系统变量,变量名为VCINSTALLDIR,变量值为
cpp 复制代码
C:\Program Files\Microsoft Visual Studio\2022\Community\VC
  1. win+R输入cmd打开命令窗口,通过cd /d命令进入到我们要操作的文件夹(.exe所在文件夹)
cpp 复制代码
cd /d C:\Users\BaiYang\Desktop\asd

或者直接在文件窗口地址栏输入cmd回车。

  1. 执行 "windeployqt ExamSys.exe" 命令,换成自己的.exe名字

方法二:

  1. 先找到windeployqt.exe的位置
    比如说,我的qt安装位置是:
cpp 复制代码
C:\Qt\Qt5.9.6\5.9.6\msvc2015_64\bin\windeployqt.exe

命令行切换到此位置

  1. 再找到自己生成的exe文件位置,比如说,我的是:
cpp 复制代码
G:\bin\Test.exe
  1. 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。进入助手界面。

第四步

按照最下面一行的提示,逐步修改项目。

  1. 确定软件信息
  2. 这里可以直接选默认选项
  1. 最重要的是这里,确定安装文件,将自己的exe文件和依赖的dll文件添加到文件内;文件夹选择Add Folders(注意软件很容易卡死,随时点击save项目,不然又要从头开始)

    在ProgramFilesFolder上面就是CommonFileFolder,这里存放的是软件的一些配置文件等;也可以将这个路径设置成系统环境变量,将dll放在这里,这样你可以安装一个纯exe文件,程序会从系统路径内寻找dll文件;

    像我自己的电脑里便有Common Files里面有之前安装软件存放的配置文件;

  2. 这两个可以跳过默认,也可以自己选择

  3. 这里设置的是:是否需要许可证文件、是否需要用户填写公司名称,用户是否自定义选择安装位置,用户是否可以选择完整安装/部分安装,用户是否可以选择安装完成后打开软件;

  4. 选择安装时的语言

  5. 发布程序安装包

    点击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发布完成;

相关推荐
极客先躯9 分钟前
高级java每日一道面试题-2025年3月22日-微服务篇[Nacos篇]-Nacos的主要功能有哪些?
java·开发语言·微服务
不知名。。。。。。。。28 分钟前
C++__list
开发语言·c++·list
EverestVIP1 小时前
C++动态库对外接口通过接口方式实现
开发语言·c++
Swift社区1 小时前
Swift LeetCode 246 题解:中心对称数(Strobogrammatic Number)
开发语言·leetcode·swift
巷北夜未央1 小时前
Python每日一题(13)
开发语言·python·算法
woniu_maggie2 小时前
SAP EXCEL DOI 详解
开发语言·后端·excel
小爬虫程序猿2 小时前
利用 PHP 爬虫按关键字搜索淘宝商品
开发语言·爬虫·php
独好紫罗兰2 小时前
洛谷题单3-P5720 【深基4.例4】一尺之棰-python-流程图重构
开发语言·python·算法
byte轻骑兵2 小时前
【C++进阶】关联容器:pair类型
开发语言·c++
LuckyRich12 小时前
【boost搜索引擎】下
开发语言·c++·搜索引擎