【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:
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/383198.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

docker相关内容学习

一、docker的四部分 二、镜像相关命令 三、容器相关命令

【BUG】已解决:NameError: name ‘python‘ is not defined

NameError: name ‘python‘ is not defined 目录 NameError: name ‘python‘ is not defined 【常见模块错误】 【解决方案】 欢迎来到英杰社区https://bbs.csdn.net/topics/617804998 欢迎来到我的主页,我是博主英杰,211科班出身,就职于…

SVN文件夹没有图标(绿钩子和红感叹号)

3分钟教会你解决SVN文件夹没有绿勾和红色感叹号的问题_svn文件被改动过不显示红色-CSDN博客https://blog.csdn.net/weixin_43382915/article/details/124251563 关于SVN状态图标不显示的解决办法(史上最全) - 简书 (jianshu.com)https://www.jianshu.com/p/92e8e1f345c0

接入百度文心一言API教程

然后,编辑文章。点击AI识别摘要,然后保存即可 COREAIPOWER设置 暂时只支持经典编辑器.古腾堡编辑器等几个版本后支持.在比期间,你可以自己写点摘要 摘要内容 AL识别摘要 清空 若有收获,就点个赞吧 接入文心一言 现在百度文心一言&…

网站基本布局CSS

代码 <!DOCTYPE html> <html> <head><meta charset"utf-8"><meta name"viewport" content"widthdevice-width, initial-scale1"><title></title><style type"text/css">body {margi…

性能调优 17. GraalVM云原生时代的Java虚拟机

1. GraalVM诞生的背景 1.1. Java在微服务/云原生时代的困境及解决方案 ‌‌‌  事实 ‌‌‌  Java总体上是面向大规模、长时间的服务端应用而设计的。 ‌‌‌  即时编译器(JIT)、性能优化、垃圾回收等有代表性的特征需要一段时间来达到最佳性能。 ‌‌‌  矛盾 ‌…

4、Python+MySQL+Flask的文件管理系统【附源码,运行简单】

4、PythonMySQLFlask的文件管理系统【附源码&#xff0c;运行简单】 总览 1、《文件管理系统》1.1 方案设计说明书设计目标工具列表 2、详细设计2.1 登录2.2 注册2.3 个人中心界面2.4 文件上传界面2.5 其他功能贴图 3、下载 总览 自己做的项目&#xff0c;禁止转载&#xff0c…

大厂面试官问我:两个1亿行的文件怎么求交集?【后端八股文十五:场景题合集】

本文为【场景题合集】初版&#xff0c;后续还会进行优化更新&#xff0c;欢迎大家关注交流~ hello hello~ &#xff0c;这里是绝命Coding——老白~&#x1f496;&#x1f496; &#xff0c;欢迎大家点赞&#x1f973;&#x1f973;关注&#x1f4a5;&#x1f4a5;收藏&#x1f…

Unity UGUI 之 Input Field

本文仅作学习笔记与交流&#xff0c;不作任何商业用途 本文包括但不限于unity官方手册&#xff0c;唐老狮&#xff0c;麦扣教程知识&#xff0c;引用会标记&#xff0c;如有不足还请斧正 1.Input Field是什么&#xff1f; 给玩家提供输入的输入框 2.重要参数 中英文对照着看…

设计模式|观察者模式

观察者模式是一种行为设计模式&#xff0c;它定义了一种一对多的依赖关系&#xff0c;让多个观察者对象同时监听某一个主题对象。当主题对象发生变化时&#xff0c;它的所有观察者都会收到通知并更新。观察者模式常用于实现事件处理系统、发布-订阅模式等。在项目中&#xff0c…

爬虫学习4:爬取王者荣耀技能信息

爬虫&#xff1a;爬取王者荣耀技能信息&#xff08;代码和代码流程&#xff09; 代码 # 王者荣耀英雄信息获取 import time from selenium import webdriver from selenium.webdriver.common.by import By if __name__ __main__:fp open("./honorKing.txt", "…

nginx隐藏server及版本号

1、背景 为了提高nginx服务器的安全性&#xff0c;降低被攻击的风险&#xff0c;需要隐藏nginx的server和版本号。 2、隐藏nginx版本号 在 http {—}里加上 server_tokens off; 如&#xff1a; http {……省略sendfile on;tcp_nopush on;keepalive_timeout 60;tcp_nodelay o…

Microsoft 365 Office BusinessPro LTSC 2024 for Mac( 微软Office办公套件)

Microsoft 365 Office BusinessPro LTSC 2024是一款专为商业用户设计的办公软件套件&#xff0c;它集成了Word、Excel、PowerPoint等核心应用&#xff0c;并特别包含了Microsoft Teams这一强大的协作工具。Teams将聊天、会议、文件共享、任务管理等功能整合到一个平台上&#x…

【黑科技】:Laravel 项目性能提升 20 倍

令人激动的黑科技&#xff1a;Laravel 项目性能提升 20 倍 这个项目能够在无需修改任何代码且无需第三方扩展的前提下&#xff0c;将你的 Laravel 项目性能提高 20 倍。它仅依赖于 PHP 原生的 pcntl、posix、fiber 和 sockets。 项目灵感 起因是看到官方发布的 PHP 8.1 更新…

软件开发者消除edge浏览器下载时“此应用不安全”的拦截方法

当Microsoft Edge浏览器显示“此应用不安全”或者“已阻止此不安全的下载”这类警告时&#xff0c;通常是因为Windows Defender SmartScreen或者其他安全功能认为下载的文件可能存在安全风险。对于软件开发者来说&#xff0c;大概率是由于软件没有进行数字签名&#xff0c;导致…

河南萌新联赛2024第(二)场:南阳理工学院

文章目录 原题链接A.国际旅行Ⅰ题意&#xff1a;思路&#xff1a;代码&#xff1a; F.水灵灵的学弟题意&#xff1a;思路&#xff1a;代码 I.重生之zbk要拿回属于他的一切题意&#xff1a;思路&#xff1a;代码&#xff1a; J.这是签到题意&#xff1a;思路&#xff1a;代码&am…

畅游时空|虚拟世界初体验,元宇宙游戏如何开发?

在元宇宙中&#xff0c;用户可以通过虚拟身份进行互动、社交、工作和娱乐&#xff0c;体验与现实世界平行的生活和活动。元宇宙不仅仅是一个虚拟空间&#xff0c;更是一个融合了虚拟和现实的生态系统&#xff0c;具有巨大的发展潜力和应用前景。 在不断发展的数字环境中&#x…

NCRE3 2-1 网络总体设计基本方法

这部分记忆的比较多 概览 设计网络建设总体目标确定网络系统方案设计原则网络系统总体设计设计网络拓扑结构进行网络设备选型网络系统安全设计 设计网络建设总体目标 这部分视频没说到 确定网络系统方案设计原则 这部分视频没说到 网络系统总体设计 核心层网络结构设计 …

图形编辑器基于Paper.js教程09:鼠标拖动画布,以鼠标点为缩放中心进行视图的缩放

如何使用Paper.js实现画布的缩放与拖动功能 在Web开发中&#xff0c;利用Paper.js库进行图形的绘制和交互操作是一种常见的实践。Paper.js是一个强大的矢量图形库&#xff0c;可以让开发者通过简洁的API完成复杂的图形操作。在本文中&#xff0c;我们将详细探讨如何使用Paper.…

Dify中接入GPT-4o mini模型

GPT-4o mini模型自己承认是基于GPT-3.5架构的模型&#xff0c;有图有真相&#xff1a; 一.GPT-4o mini官网简介 GPT-4o mini&#xff08;“o"代表"omni”&#xff09;是小型型号类别中最先进的型号&#xff0c;也是OpenAI迄今为止最便宜的型号。它是多模态的&#x…