【C#】Visual Studio2022打包依赖第三方库的winForm程序为exe
0.简介
IDE:VS2022
平台:C# .NetFramework4.7.2 WinForm界面
有GDAL、EEplus第三方库的依赖,所以在其他未安装环境的电脑中功能无法使用。
1. 安装
1.1 运行文件输出
在VS扩展中选择管理扩展,安装:Microsoft Visual Studio Installer Projects 2022,安装后重启VS。
右击解决方案资源管理器—>你的解决方案:添加—>新建项目,搜索Setup Project,创建:
注意:这里的命名最好是纯英文,否则一些依赖本地.Net框架的库无法找到!

解释一下这三个文件夹的功能:
1.存放一些库文件和exe文件,这种通常是安装在D:\Program Files本地中存放
2.安装程序后,会在桌面生成一个快捷方式
3.在开始菜单中是否会显示,通常将卸载程序放在里面
右击Application Folder — Add ---- 项目输出:

我们这里只有这一个项目project,所以就是他了,点击确定。会得到一个名字为:主输出 from AutoMetadata(Release X64) 的output类型文件。
导入后,会连带exe所依赖的DLL文件一起导入。
注意这里导入的是文件,文件夹不会被导入,所以需要手动创建文件夹 Add — Folder,然后安装上面的方式重复添加,将一层一层的文件夹一直迭代填入:

1.2 桌面快捷方式
通常安装软件后,桌面会产生一个快捷方式对吧,对吧,对吧…
到User’s Desktop下,右击空白处,点击 创建新的快捷方式,找到刚才的主输出 from AutoMetadata(Release X64) ,重命名,这个文件的名字就是安装好软件后,在桌面快捷方式中显示的名字。
还要给他整一个图标对吧,要不太丑了…
选择一个.ico后缀的图片文件拖到Application Folder下,然后在快捷方式的属性下找到Icon。
1.3 卸载文件
你写的Demo工具总不能是狗皮膏药对吧,删都删不掉的那种似乎不好。难不成你要让用户去文件夹中手动删除?
右击Application Folder — Add — 文件:去找C:\Windows\System32\msiexec.exe,专门负责软件卸载的,
然后到User’s Programs Menu中右击空白 — 添加新的快捷方式,找到msiexec.exe,修改名为:***卸载 或者 Uninstall **。
为了防止用户不知道开始菜单中有卸载工具,也可以在安装文件中放置一个:

改个名字即可。
还要修改卸载程序中的参数Code,如果有两个要修改两处。
点击刚才建好的整个setup project名字,查看属性:

PS:在这里修改目标平台TargetPlatform,和你的release输出对应起来即可。我选的是X64
选择ProductCode,复制这段代码,到卸载文件中找到Arguments复制过去,前面加个/X 。
规则:斜杠+大写X+一个空格

1.4 修改安装位置
点击Application Folder ,查看属性DefaultLocation并修改,:D:\Program Files[ProductName]
这样会默认安装到指定位置并创建一个文件夹存放。
1.5 生成输出
右击setup project,生成。

时间比较长,等待:

成功后在同.sln解决方案的文件中找到:setup project — release:

双击setup.exe:

相关文章:
【C#】Visual Studio2022打包依赖第三方库的winForm程序为exe
0.简介 IDE:VS2022 平台:C# .NetFramework4.7.2 WinForm界面 有GDAL、EEplus第三方库的依赖,所以在其他未安装环境的电脑中功能无法使用。 1. 安装 1.1 运行文件输出 在VS扩展中选择管理扩展,安装:Microsoft Visua…...
《算法笔记》总结No.11——数字处理(上)欧拉筛选
机试中存在部分涉及到较复杂数字的问题,这是编码的基本功,各位一定要得心应手。 目录 一.最大公约数和最小公倍数 1.最大公约数 2.最小公倍数 二.素数 1.判断指定数 2.输出所有素数 3.精进不休——埃拉托斯特尼筛法 4.达到更优!——…...
DP学习——享元模式
学而时习之,温故而知新。 享元模式 名词解析 有必要解释下“享元”两字,英文原文是flyweight pattern——轻量级模式,但是翻译过来的“享元”两字太牛逼了——褒贬不一,翻译的他妈都不认识。 享元的高雅在于: 享:共享/共用 元:…...
无人机10公里WiFi图传摄像模组,飞睿智能超清远距离无线监控,智能安防新潮流
在这个科技日新月异的时代,我们对影像的捕捉和传播有了更高的要求。从传统的有线传输到无线WiFi图传,每一次技术的飞跃都为我们带来了全新的视觉体验。今天,我们要探讨的,正是一款具有划时代意义的科技产品——飞睿智能10公里WiFi…...
SAP S/4HANA Cloud Public Edition
即装即用的云ERP软件。借助SaaS模式为企业提供完备、现代化的ERP 云套件,为企业带来新的技术突破,如自动化的业务流程与基于数据的商业分析。企业可选择这款智能云ERP软件,快速实现自身价值。 什么是 SAP S/4HANA Cloud Public Edition&#…...
LabVIEW汽车动态信号模拟系统
随着汽车工业的快速发展,对汽车电子控制单元(ECU)的测试与仿真需求日益增加。开发了一种基于LabVIEW软件开发的汽车动态信号模拟系统,该系统能有效模拟ECU在实车环境下的工作状态,为ECU的开发和测试提供了一个高效、经…...
chrome 插件:content-script 部分逻辑在页面无法生效,可考虑插入 script 到页面上
背景: 某页面有个输入框, 用的应该是什么库里的组件, 直接修改内容不生效/机制不明确, 于是使用 paste event 粘贴到输入框, 结果发现也不行 定位: 使用 mutationObserver , 发现事件确实触发了, 输入框内容变了, 但马上又变回来了, 于是怀疑是输入框组件有做 mutationObers…...
【前端 10】初探BOM
初探BOM:浏览器对象模型 在JavaScript的广阔世界中,BOM(Browser Object Model,浏览器对象模型)扮演着举足轻重的角色。它为我们提供了一套操作浏览器窗口及其组成部分的接口,让我们能够通过编写JavaScript…...
PostgreSQL入门与进阶学习,体系化的SQL知识,完成终极目标高可用与容灾,性能优化与架构设计,以及安全策略
专栏内容: postgresql使用入门基础手写数据库toadb并发编程 个人主页:我的主页 管理社区:开源数据库 座右铭:天行健,君子以自强不息;地势坤,君子以厚德载物. 文章目录 概述基础篇初级篇进阶篇…...
ODBC+FreeTDS从Linux访问Windows SqlServer数据库
提示 \color{red}{提示} 提示: 《Linux系统上编译安装FreeTDS库文件》中讲述了如何编译FreeTDS源码,并安装。 本文部分内容会在上述文章的基础上深入。 本文内容所使用的环境 Windows系统:Windows 10 企业版 64位操作系统;IP&a…...
Chainlit一个快速构建成式AI应用的Python框架,无缝集成与多平台部署
概述 Chainlit 是一个开源 Python 包,用于构建和部署生成式 AI 应用的开源框架。它提供了一种简单的方法来创建交互式的用户界面,这些界面可以与 LLM(大型语言模型)驱动的应用程序进行通信。Chainlit 旨在帮助开发者快速构建基于…...
leetcode日记(51)不同路径Ⅱ
和上一道题(无障碍物的最短路径)很像,但事实上比上一题多了优化方法 根据上一题改的代码如下,添加了对障碍物的判定,如果有障碍物则将数组值设为0。 class Solution { public:int uniquePathsWithObstacles(vector&l…...
图解分布式事务中的2PC与Seata方案
文章目录 文章导图什么是2PC解决传统2PC方案XA方案DTP模型举例:新用户注册送积分总结: Seata方案设计思想执行流程举例:新用户注册送积分 Seata实现2PC事务(AT模式)前提整体机制写隔离读隔离实际案例理解要点说明核心代…...
数据结构(Java):Map集合Set集合哈希表
目录 1、介绍 1.1 Map和Set 1.2 模型 2、Map集合 2.1 Map集合说明 2.2 Map.Entry<K,V> 2.3 Map常用方法 2.4 Map注意事项及实现类 3、Set集合 3.1 Set集合说明 3.2 Set常用方法 3.3 Set注意事项及其实现类 4、TreeMap&TreeSet 4.1 集合类TreeM…...
网络战时代的国家安全:策略、技术和国际合作
网络战时代的国家安全涉及到策略、技术和国际合作等多个方面。以下是对这些问题的简要概述: 网络战策略 网络战策略是指在现代战争中,通过网络技术进行的信息收集、处理、分析、调度和指挥等一系列行动,旨在同时影响和干扰对方的网络系统&am…...
【elasticsearch实现优先展示连词并按某个字段折叠显示最新一条】
elasticsearch实现优先展示连词并按某个字段折叠显示最新一条 前言match_phrase 顺序前缀 boost 权重collapse 折叠基本用法高级功能排序 前言 场景要求: 优先展示关键词连词的商品按照某个字段折叠相同字段,并按指定排序字段选择第一个 match_phras…...
Golang | Leetcode Golang题解之第284题窥视迭代器
题目: 题解: type PeekingIterator struct {iter *Iterator_hasNext bool_next int }func Constructor(iter *Iterator) *PeekingIterator {return &PeekingIterator{iter, iter.hasNext(), iter.next()} }func (it *PeekingIterator) hasNe…...
C语言中的结构体
文章目录 前言一、结构体是什么?二、结构体的定义三、结构体的初始化四、结构体的嵌套五、结构体数组 1结构体数组的定义:六、结构体指针 一、结构体是什么? 我们知道一群类型相同的数据组合到一起是数组,那一群不同类型的数据组…...
3.qml与c++模块化开发
目录 模块化开发封装c模块并使用封装qml模块并使用 模块化开发 什么是模块化开发呢? 举个例子: 我们有一台台式电脑,我们台式电脑有显卡,内存,磁盘,cpu,键盘,鼠标等 你可以将这些部…...
怎么使用github上传XXX内所有文件
要将 目录中的所有文件上传到 GitHub,你可以按照以下步骤进行: 创建一个新的 GitHub 仓库 登录到你的 GitHub 账户。 点击右上角的加号(),选择 “New repository”。 输入仓库名称(例如:202407…...
SpringBoot+Vue家政服务网站源码+论文
代码可以查看文章末尾⬇️联系方式获取,记得注明来意哦~🌹 分享万套开题报告任务书答辩PPT模板 作者完整代码目录供你选择: 《SpringBoot网站项目》1800套 《SSM网站项目》1500套 《小程序项目》1600套 《APP项目》1500套 《Python网站项目》…...
OpenClaw模型热切换:GLM-4.7-Flash与Qwen3-32B的任务适配对比
OpenClaw模型热切换:GLM-4.7-Flash与Qwen3-32B的任务适配对比 1. 为什么需要模型热切换 上周我在用OpenClaw处理一个复杂的文件整理任务时,遇到了一个典型问题:Qwen3-32B模型虽然能给出高质量的文件分类建议,但每个决策都要消耗…...
如何在KubeOperator中选择最佳存储方案:NFS、Ceph RBD和Local Volume完全指南
如何在KubeOperator中选择最佳存储方案:NFS、Ceph RBD和Local Volume完全指南 【免费下载链接】KubeOperator KubeOperator 是一个开源的轻量级 Kubernetes 发行版,专注于帮助企业规划、部署和运营生产级别的 K8s 集群。 项目地址: https://gitcode.co…...
2026 AI关键词搜索排名优化行业专业测评:中之网科技江苏有限公司——技术驱动,万词霸屏,全链路AI获客解决方案
2026 AI关键词搜索排名优化行业专业测评:中之网科技江苏有限公司——技术驱动,万词霸屏,全链路AI获客解决方案一、测评背景与核心维度随着AI大模型(DeepSeek、豆包、腾讯元宝、Kimi、文心一言、通义千问等)成为企业获客…...
Linux开发学习第七天——虚拟内存和物理内存
一、虚拟内存1.概念内核给进程编造的独立地址空间,每个进程都以为自己独占内存。它们靠 MMU(硬件) 页表(内核) 做映射。每个进程都独有一份,就是之前提到的进程的内存模型。2.作用隔离进程:A 进…...
Harmonyos应用实例226:复数的三角形式与运算
8. 复数的三角形式与运算 功能简介:将复数表示为三角形式,计算模和幅角,支持复数的乘法、除法运算的几何意义。通过复平面可视化展示复数的三角形式和运算过程,帮助学生理解复数的三角表示和运算规则。 ArkTS代码: @Entry @Component struct ComplexTrigonometric {@St…...
HDMI转VGA转换器硬件设计实战:基于MX9291的电路实现
1. HDMI转VGA转换器的核心价值与应用场景 当你手头有一台只有VGA接口的老显示器,而电脑却只有HDMI输出时,MX9291芯片就是解决这个兼容性问题的钥匙。这种转换需求在企业和教育领域特别常见——很多会议室和教室的投影仪至今仍在使用VGA接口。我去年就帮朋…...
藏在滴滴里的AI神器,轻松叫到“梦中情车”
【潮汐商业评论/文】在一线城市上班的00后小杨是个重度打车用户,从她滴滴会员常年v8就可见对打车的依赖程度。她住在城市远郊,工作日的通勤或是周末的聚会,她总习惯提前叫好车,对于车型她也有着自己的“小偏好”,总结就…...
AI辅助开发新思路:让快马AI为你的下拉词功能注入智能排序与语义联想
AI辅助开发新思路:让快马AI为你的下拉词功能注入智能排序与语义联想 最近在开发一个需要智能下拉词功能的项目时,我发现传统的前缀匹配方式已经不能满足用户需求了。于是我开始探索如何用AI来增强下拉词功能,让它变得更智能、更人性化。经过…...
2026知识付费平台选择指南:学习者与创作者如何各取所需
2026年,知识付费行业已进入成熟期。据艾媒咨询(iiMedia Research)预测,2026 年中国知识付费市场规模将突破3000 亿元,较 2025 年的 2808.8 亿元持续增长。然而,平台分化加剧——有的平台陷入内容同质化困境…...
