VS2026 打包 C++ 程序生成 EXE,借助 Installer Project 扩展工具

发布时间:2026/11/5 9:08:22

VS2026 打包 C++ 程序生成 EXE,借助 Installer Project 扩展工具 文章目录1. 安装 Microsoft Visual Studio Installer Projects 20222. 添加 Setup Project3. 在 File System 中添加相关文件及项目输出4. Qt 部署5. 生成桌面快捷方式6. 修改桌面快捷方式图标参考资料本文适用情况为已经通过 visual studio 平台开发并测试好了程序或软件需要打包成 exe 文件部署到其他电脑之上。本人所测试的开发项目背景是开发平台Visual Studio 2026开发语言C界面组件Qt 6.11.1其他组件VTK-9.6.21. 安装 Microsoft Visual Studio Installer Projects 2022在 Visual Studio 顶部菜单栏找到 Extensions依次点击Extensions - Manage Extensions然后在弹出的搜索框搜索installer并点击install。之后退出 Visual Studio因为只有关闭 Visual Studio 才能进行功能的添加和修改。跟随弹出的小窗口操作即可。成功之后再次重启 Visual Studio 即可。Microsoft Visual Studio Installer Projects 2022 是微软为 Visual Studio 2022 提供的一款扩展插件专门用于将开发好的桌面应用程序打包成标准的安装程序如.msi或Setup.exe文件。主要功能和作用创建安装包能把你的 C#、VB.NET 等桌面程序如 WinForms、WPF 项目以及相关的类库、资源文件打包在一起。生成标准格式支持生成 .msiWindows Installer或传统安装执行文件方便分发给用户在 Windows 系统上安装。配置安装环境可以设置桌面快捷方式、开始菜单图标。可以配置注册表项、文件关联等系统设置。可以检测并自动引导安装依赖项例如 .NET Framework 环境。适用场景当你开发完一个 Windows 桌面软件需要发给客户或发布到网上让普通用户通过类似“下一步、下一步”的图形界面来安装而不是简单地把一堆 .dll 和 .exe 压缩包发给对方时就可以使用这个工具。2. 添加 Setup Project刚才安装的 Microsoft Visual Studio Installer Projects 是扩展工具接下来利用这个工具创建安装包项目Setup Project这个安装包项目才是用来把我们的工程可执行文件setup.exe、.dll和相关资源文件打包成.msi或setup.exe文件的。这里我们假定你的工程名字为XYZ。接下来右键你的工程Solution XYZ然后依次选择Add - New Project在搜索框搜索setup然后选择Setup Project一直下一步即可。之后我们便得到了用来打包我们的XYZ工程的 File System 编辑器这是用来决定安装时把文件放到目标电脑的哪些位置。Application Folder应用程序文件夹程序的安装目录。通常把 XYZ.exe、Qt/VTK DLL以及程序运行需要的资源文件放这里。User’s Desktop用户桌面放桌面快捷方式。一般添加一个指向 XYZ.exe 的快捷方式。User’s Programs Menu用户开始菜单放开始菜单快捷方式。也可以在这里建一个程序文件夹再放快捷方式。现在看到的这三个是安装位置分类不代表里面已经有程序文件。3. 在 File System 中添加相关文件及项目输出右键Application Folder然后选择Add → Project Output…添加 XYZ 的Primary Output。随后把需要随程序安装的DLL和资源也加入这里。然后右键 Setup Project默认名字为Setup1点击build即可在文件夹中看到生成的setup.exe和Setup1.msi文件将这两个文件发送到待安装电脑运行setup.exe即可。如果没有其他特别的要求以上就是核心打包流程了。再往之后的内容就是根据不同的需求以及不同的工程文件类型所独有的一些操作了。Add Project Output Group添加项目输出组窗口。它决定从 XYZ 项目里把哪一类生成文件加入安装包。选项包含什么通常怎么用Primary Output项目生成的主程序.exe或.dll必选。你的应用通常选这个Resource Satellite DLLs按语言生成的本地化资源 DLL只有程序使用这类资源 DLL 时才选不确定时先不加Debug Symbols调试符号文件通常是.pdb正式安装包通常不需要排查崩溃时可另行保留Content Files项目中标记为 Content 的文件只有项目把需要的文件正确标记为 Content 时才选仍要检查是否包含了运行所需资源Source Files源代码文件通常不应放进给用户安装的程序包Documentation Files项目文档文件需要随程序提供说明文档时再选4. Qt 部署因为我开发的工程还用到了 Qt所以需要进行 Qt 部署。如果待打包的工程没有用到 Qt则可以跳过这一步。Qt 的部署采用windeployqt运行名称为Qt 6.11.1 (MSVC 2022 64-bit)命令提示符工具这里需要注意版本匹配问题有 MSVC 和 MinGW需要采用和你工程开发一致的版本。具体可以在你的 visual studio 工程查到路径为Extension - Qt VS Tools - Qt Versions.确认命令提示符的版本后打开并运行如下指令windeployqt--releaseD:\Deploy\XYZ.exe这一步会借助 windeployqt 工具找寻相关的 Qt 组件并将其复制到你的XYZ.exe文件夹下。这里的所有内容都是需要复制到步骤 3 中的Application Folder且注意要保持同样的文件结构。5. 生成桌面快捷方式如果想要安装后的程序自动创建桌面快捷方式那需要先定位步骤 3 的Application Folder然后在其中找到主输出Shortcut to %sPrimary Output from JawDynamics (Active)之后右键选择Create Shortcut to Primary Output from XYZ ...然后就会得到默认文字为Shortcut to %sPrimary Output from XYZ ...的快捷方式。将得到的快捷方式移动到Users Desktop文件夹下同时可以修改这个快捷方式的名字。之后再次 Build 就可以了。6. 修改桌面快捷方式图标确认手里有真正的 .ico 文件PNG 图片不能直接当快捷方式图标用。在Setup1的Application Folder里用Add → File…加入这个 .ico 文件。选中User’s Desktop里的快捷方式右键按打开Properties Window。然后点 Icon 这一行的 (Icon)在弹窗里选择刚加入项目的 .ico 文件并确认。注意别只选中 Icon 这一行就关闭窗口。重新生成Setup1。在测试电脑上卸载旧版本后安装新包再看桌面图标。参考资料C程序打包生成EXE——以VS2019为例五分钟教会你vs程序打包全程无废话
延伸阅读

更多相关文章

2026/11/5 9:08:22

File、IO流

File用于操作文件,IO流用于读写数据1.File文件对象常用方法package com.popo.filedemo;import java.io.File; import java.io.IOException;public class FileDemo1 {public static void main(String[] args) throws Exception {// 文件对象常用方法File f1 new Fil…

2026/11/5 9:08:22

用 CLion 定位基于 RK3568 嵌入式 Linux 5.10.160 Core Dump 崩溃问题

嵌入式 Linux 上调试偶发崩溃是件头疼事:现场复现成本高、串口打印有限、gdb 直接 attach 又会打断业务。把 core dump 落盘、拿回开发机用 CLion 慢慢分析,是性价比最高的做法。本文以飞凌 OK3568 开发板(RK3568, Linux 5.10.160, Buildroot)为例,走完"板上开启 cor…

2026/11/5 9:18:26

Pro/E模型练习100例:参数化建模训练与工程交付实战

简介:《Pro/E模型练习100例》面向Pro/E初学者与进阶学习者,围绕旋转、扫描、曲面及装配等核心建模能力提供成体系实战训练,适合自学、课堂辅助与课后查漏补缺。压缩包共352个文件、约41.98MB,以tif图示和prt模型为主体&#xff0c…

2026/11/5 9:18:26

DE430星历详解:MATLAB中实现太阳系厘米级轨道计算

简介:本资源是面向航天工程、天文计算与MATLAB仿真方向的科研人员及高年级本科生/研究生的DE430高精度星历数据处理工具包,解决太阳系天体位置精确建模、航天器轨道设计与天文事件预测等核心问题。压缩包共11个文件(4个MATLAB源码文件用于读取…

2026/11/5 9:18:26

MCD19A2气溶胶AOD数据处理:读取、重投影与批处理避坑

简介:这份代码包围绕MCD19A2遥感数据处理展开,面向具备一定IDL与Python基础、从事地球科学、环境监测及植被分析的科研人员与学习者,重点解决批量预处理、影像融合、镶嵌、重采样、裁剪和栅格点值提取等流程的代码实现问题。压缩包共12个文件…

2026/11/5 9:18:26

Vivado FFT IP核仿真与MATLAB验证全流程指南

简介:这份资源面向FPGA数字信号处理初学者与工程实践者,聚焦Vivado FFT IP核的仿真验证流程,解决从IP配置到结果比对的完整链路问题。包内共200个文件,约45.73MB,以VHDL与Verilog源码、MATLAB验证脚本、仿真批处理与Tc…

2026/11/5 9:13:25

QSPI-Flash-deepseek 读写测试

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/11/4 12:38:23

面向复杂光照与角度的宠物面部识别鲁棒性增强策略

在智慧养宠时代,基于视觉的宠物身份识别技术正逐步从实验室走向家庭应用。然而,与配合度高的人类不同,宠物是典型的“非合作生物识别对象”——它们不会主动配合摄像头调整姿态,更无法控制光照环境。实际应用中,我们常…

2026/11/4 21:04:25

SSM电子书店源码全解析:结构、原理、部署与排错实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/11/5 0:02:07

多智能体协作系统架构设计与实践优化

1. 多智能体协作系统的时代背景2017年Transformer架构的诞生彻底改变了人工智能的发展轨迹。当行业还沉浸在单一大模型带来的性能突破时,Anthropic的研究团队已经将目光投向了更前沿的领域——如何让多个智能体通过协作产生超越单体能力的系统智能。这就像交响乐团中…

2026/11/5 0:02:07

大模型系统性入门实战指南:从原理到部署微调的全链路路线

提到大模型的系统性入门,我先说个结论:这事真不难,难的是资料太散、路线太多,今天这个框架明天那个工具,新人很容易在“收藏夹吃灰”和“教程看到一半放弃”之间反复横跳。市面上关于大模型的内容少说有几十万篇&#…

2026/11/5 0:02:07

鸿蒙文件系统沙箱机制解析与开发实践

1. 鸿蒙文件系统沙箱机制深度解析作为一名从Android转向鸿蒙开发的工程师,我深刻体会到文件系统访问是迁移过程中最先遇到的"拦路虎"。在Android上运行良好的文件读写代码,在鸿蒙真机环境却频频出现文件写入后神秘消失或直接抛出权限拒绝错误的…

2026/11/4 12:38:23

面向复杂光照与角度的宠物面部识别鲁棒性增强策略

在智慧养宠时代,基于视觉的宠物身份识别技术正逐步从实验室走向家庭应用。然而,与配合度高的人类不同,宠物是典型的“非合作生物识别对象”——它们不会主动配合摄像头调整姿态,更无法控制光照环境。实际应用中,我们常…

2026/11/4 21:04:25

SSM电子书店源码全解析:结构、原理、部署与排错实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
☎咨询二维码 ☎ ↑