QT和VS联编的项目 “打包” 和 “发布” 流程步骤

记录一下qt5.14+vs2019的打包发布方法。

打包整体思路:

  • 将编译后的exe可执行文件及其各种依赖dll、lib、图标、配置文件等先打包放到一个目录中
  • 对其进行打包发布(两种方式):
  1. 利用VS的插件Microsoft Visual Studio Installer Projects安装程序打包插件进行打包

  2. 利用Enigma Virtual Box(单文件封装工具) 进行打包

 一,将编译后的exe可执行文件及其各种依赖dll、lib、图标、配置文件等先打包放到一个目录中

(1)dumpbin指令查看可执行文件的dll依赖包

在VS开发人员命令提示符(vs界面->工具->命令行->开发者命令提示)中执行dumpbin /dependents 程序路径 :dumpbin/dependents C:\Users\WFD\Desktop\GCtest\Debug\GCtest

QT和VS联编的项目 “打包” 和 “发布” 流程步骤_第1张图片

(2)windeployqt.exe指令自动将qt依赖包复制过来

 1️⃣先打开 Qt 的命令行(用的32位)

QT和VS联编的项目 “打包” 和 “发布” 流程步骤_第2张图片

2️⃣使用“cd/d 路径” 命令进入到包含.exe 文件的文件夹。

3️⃣ Qt 命令行执行 windeployqt 工具,输入: “windeployqt ***.exe” ,就可以将qt依赖包复制到该文件夹中

QT和VS联编的项目 “打包” 和 “发布” 流程步骤_第3张图片

QT和VS联编的项目 “打包” 和 “发布” 流程步骤_第4张图片

(3)非Qt依赖库的添加

要注意release版本与debug版本所需要的依赖是不一样的,需要分别打包!!!

  •  方法一

在通过vs的dumpbin指令查询到可执行文件的dll依赖包后,使用eyerything软件根据位置去寻找dll文件。

下载地址:voidtools

QT和VS联编的项目 “打包” 和 “发布” 流程步骤_第5张图片

  •   方法二

如果动态库有很多那么复制起来很麻烦(比如上面Qtcore.dll查找到很多路径,但是不知道用哪个),可以使用window的批处理:

通过观察程序运行时Vs输出窗口中加载的dll库:

QT和VS联编的项目 “打包” 和 “发布” 流程步骤_第6张图片

  • 方法三

使用Dependency Wallker 打开***.exe 查找不存在的.dll,其中黄色的问号标识是不存在的。Dependency Wallker可以递归显示可执行文件(exe)和动态库(dll)调用的动态库。

打开**.exe文件之后各个节点可能是展开的很乱,可以右击任意节点选择“折叠所有(L)”,然后再单击根节点的加号展开就是如图所示的样式,这样很清晰。

QT和VS联编的项目 “打包” 和 “发布” 流程步骤_第7张图片

在全部添加完依赖库后,点击exe运行文件就可以本机运行了。或者将该文件夹全部发送给用户也可运行。

那么如何只使用一个exe文件就完成程序的运行呢?

这就要用到下面要说的打包和发布了。

 二,利用VS的插件Microsoft Visual Studio Installer Projects安装程序打包插件进行打包

安装过程不再详述参见:Installer Projects插件的安装

 (1)新建安装项目

解决方案->新建项目->setup project

QT和VS联编的项目 “打包” 和 “发布” 流程步骤_第8张图片

 进入文件系统:(setup1->view->文件系统)

QT和VS联编的项目 “打包” 和 “发布” 流程步骤_第9张图片

  (2)添加文件

Application Folder->add->文件(在此添加相关的依赖资源)

QT和VS联编的项目 “打包” 和 “发布” 流程步骤_第10张图片

  将exe所在目录下的所有文件添加到该处

(3)添加项目输出

Application Folder->add->项目输出(主程序入口)

QT和VS联编的项目 “打包” 和 “发布” 流程步骤_第11张图片

 对主输出创建快捷方式,并将其拖动到User‘s Desktop内

QT和VS联编的项目 “打包” 和 “发布” 流程步骤_第12张图片

(4)打包发布

 对setup1项目进行重新生成,即生成安装程序了。

 三,利用Enigma Virtual Box(单文件封装工具) 进行打包

Enigma 虚拟文件打包系统可以将程序和配套文件打包成一个可执行文件,而没有任何效率的损失,配套文件也不会被释放至硬盘。(同时支持X86和X64二进制文件)。

如图:

QT和VS联编的项目 “打包” 和 “发布” 流程步骤_第13张图片

QT和VS联编的项目 “打包” 和 “发布” 流程步骤_第14张图片

将生成的GCtest_boxed文件复制到要运行的设备上即可(可以单独运行)。。。


你可能感兴趣的:(QT,qt,visual,studio)