visual studio打包QT工程发布exe安装包

一、实验环境

软件 版本 下载链接
visual studio Microsoft Visual Studio Community 2022 (64 位) - Current 版本 17.7.5
QT v6.6.3
NSIS v3.10 官网百度云1234
Windows 11

二、程序准备

1、程序生成

使用 visual studio 打开工程,选择 Release 模式后,点资源生成。

Release 资源生成后,打开工程目录下,进入 x64/Release 文件夹 下可以看到工程资源。

三、程序打包

1、依赖生成

  1. 打开QT命令框,一般从Windows启动界面搜索QT,匹配出现QT MSVC命令框点击即可。也可根据实际安装路径寻找。

  2. cd 进入已经生成的 Release 资源目录,我的程序资源目录为D:\my_project\c++_project\OfflineDataParser\x64\Release)

  3. 因为 Release 文件夹下资源缺少QT等组件依赖,所以需使用Qt自带的 windeployqt.exe 工具,用于拉取依赖创建应用程序发布包。包名为工程生成的exe文件

    cpp 复制代码
    windeployqt 包名


    下图为依赖拉取完毕的目录资源截图

3、发布文件夹准备

  1. 新建程序发布版本文件夹,例如我的程序当前版本为v2.0.2,在目录下创建v2.0.2文件夹,并将程序 logo 复制到当前目录下。
  2. 进入" v2.0.2" 目录,创建" nsis" 文件夹(用于存放nsis配置文件 ) 和 " 依赖" 文件夹(用于存放程序资源 )
  3. 进入"依赖" 文件夹,创建 "配置" 和 "源" 两个文件夹
    " 配置" 文件夹存放程序所用到的自定义资源,例如我的程序用到config外部资源。同时将程序图标放在该目录下。

    "源" 文件夹存放 Release 生成的资源。将 之前 Release 文件夹下所有文件复制到 "源" 文件夹下,同时将里面的程序包移动到 "v2.0.2" 文件夹下,我的程序包名为 "OfflineDataParser.exe"

2、安装NSIS

  1. 安装NSIS程序,安装过程这里不做过多介绍,下图为NSIS程序已经安装完成的主界面。

3、新建NSIS脚本

  1. 新建NSIS脚本
  • 点击文件 -> 新建脚本:向导 -> 弹窗(下一步),按照提示填入信息,如下图咱们填写应用打包的程序名为 "番茄",版本改为 2.0.2 ,点击下一步。

  • 选择程序 logo 图标

  • 修改发布程序名称为 "番茄",然后选择选择发布安装程序文件路径,在 "v2.0.2" 下创建 "番茄" 文件夹,然后打开保存。(默认不选择保存文件夹路径,安装包则保存到nsis模板同一级目录下)。

    • 选择安装语言为中文,点击下一步
  • 如果没有授权文件 则清空,下一步

  • 删除两个默认路径文件,添加 "依赖/OfflineDataParser.exe" 文件,再添加 依赖文件夹下的 "配置" 和 "源" 文件夹,点击下一步

  • 下一步

  • 下一步

  • 下一步

  • 选择保存脚本,以便下次发布程序新版本时用作模板,点击完成

  • 已经生成的脚本模板

    注意,要在文本中找到 CreateShortCut "DESKTOP \\番茄.lnk" "INSTDIR\OfflineDataParser.exe" 这一行,后面增加以下内容,这样才能保证程序的图标正常显示。logo-ico.ico 为程序图标的名称。

    bash 复制代码
     "" "$INSTDIR\logo-ico.ico"

4、编译发布

  1. 编译脚本
  2. 完成编译

    自此发布 exe 安装包完毕。
相关推荐
老歌老听老掉牙3 小时前
基于 PyQt5 实现刀具类型选择界面的设计与交互逻辑
python·qt·交互
灵性花火9 小时前
Qt绘制折线图
qt
abcd_zjq12 小时前
【2025最新】【win10】vs2026+qt6.9+opencv(cmake编译opencv_contrib拓展模
人工智能·qt·opencv·计算机视觉·visual studio
abcd_zjq12 小时前
VS2026+QT6.9+opencv图像增强(多帧平均降噪)(CLAHE对比度增强)(边缘增强)(图像超分辨率)
c++·图像处理·qt·opencv·visual studio
Algebraaaaa13 小时前
Qt中的字符串宏 | 编译期检查和运行期检查 | Qt信号与槽connect写法
开发语言·c++·qt
友友马13 小时前
『 QT 』Hello World控件实现指南
开发语言·qt
誰能久伴不乏13 小时前
如何在 Linux_Ubuntu 上安装 Qt 5:详细教程
linux·qt·ubuntu
feiyangqingyun1 天前
有难度哦/Qt基于通用地图组件实现航迹规划和模拟/动态标注轨迹线/带序号和方向箭头指示
qt·航迹规划和模拟
江公望1 天前
Qt qmlRegisterSingletonType()函数浅谈
c++·qt
HyEISN1 天前
关于 Qt 6.10.0 中 FolderListModel 返回 undefined 路径
qt