c# 自定义安装程序路径(设置安装路径多一层目录)+卸载前执行操作

news2024/11/18 12:44:23

 打包成setup.exe的完整流程可以参考:将WinForm项目打包成exe安装包,并创建快捷方式 (vs2019)_winform发布成exe-CSDN博客

 以下内容默认大家已经知道打包的完整流程。

一、自定义安装目录

真的好讨厌安装程序直接安装到选择的路径,不新建目录啊啊啊!

现在轮到我自己要做一个程序的部署安装了,我一定要解决这个问题。

我搜索了很多博客,关于自定义安装什么的,结果最后发现我想要的如此简单。就是在Application下面先建一个文件夹!!再把exe、dll等拖进去:

 

二、配置卸载前执行exe

我现在做的是一个游戏的启动器,启动以后需要下载资源,但是卸载的时候不会自动删除这些资源,只会卸载安装的时候的部分。于是想在卸载的时候执行一个程序自动删除资源。给这个程序取名clear Resource、哈

1.写一个删除资源的项目,生成exe

我这里是在VS新建的一个控制台应用,可以放在跟项目同一个解决方案下面,默认会给一个脚本Program.cs,直接在里面写代码就好了,mian函数项目都处理好了。

 在里面写一些自己想要的操作,然后右键项目生成,在生成的文件夹能看到好几个文件和你用到的dll。这里记两个小tips

a.获取程序当前路径不要使用Environment.CurrentDirectory,前者返回的是调用这个程序的程序路径,可以使用AppDomain.CurrentDomain.BaseDirectory

b.控制台应用执行完会自动关闭,想看输出信息的话,可以让它接受任意键再关闭

Console.WriteLine("卸载完成。输入任意键关闭:");
ConsoleKeyInfo keyPress = Console.ReadKey(intercept: true);

2.配置

分两步,加入exe和配置到uninstall

a.在application folder加入所有clearResource生成的文件和dll,和项目在同一级目录就行,我截图只截了一部分

 然后,右键这里的目录,添加项目输出,选中clearResource,确定。目录下就会生成一个发布项

 

 

b.把clearResource发布项配置到卸载操作,先右键setup项目->view(视图)->自定义操作,打开如下界面,再右键uninstall,添加自定义操作,浏览选择上面的发布项即可

 配置好以后,卸载程序时,会先执行配置的操作,再执行卸载程序。

结束。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【006】C++数据类型之进制间的转换

C数据类型之进制间的转换 引言一、进制的概述二、十进制转二进制、八进制、十六进制(短除法)三、二进制、八进制、十六进制转十进制(位次幂)四、其他进制间的转换4.1、二进制转八进制4.2、二进制转十六进制4.3、八进制转二进制4.4…

Ubuntu18.04+Xenomai-3.2.1下安装igH EtherCAT Master

一、安装Xenomai-3.2.1 Ubuntu18.04安装Xenomai实时内核https://blog.csdn.net/m0_56451176/article/details/130608887?spm=1001.2014.3001.5501 二、安装igH EtherCAT Master 2.1安装所需工具 sudo apt install autoconf autogen libtool 2.2下载IgH源码 EtherCAT安装…

赤道Kelvin和Rossby波 Part-1(简要介绍)

Equatorial Kelvin and Rossby Waves 赤道Kelvin和Rossby波;在该部分简要介绍 Kelvin waves和Rossby waves是海洋对西风突发等外界作用力变化的调整方式。这种调整是通过受重力、科氏力f以及科氏力的南北变化 ∂ f / ∂ y β \partial f/\partial yβ ∂f/∂yβ影响…

基于脑功能连接模式解码六种基本情绪

近日,北京大学心理认知与科学学院、IDG麦戈文脑科学研究所方方课题组,在《Science China Life Sciences》 在线发表了题为“Decoding six basic emotions from brain functional connectivity patterns”的研究论文。该工作结合滑窗技术和随机森林模型&a…

为了流量,何同学做了个“假B站”?

何同学是B站知名数码博主,凭借优秀的视频制作能力,内容创新获得广大年轻用户的喜欢。 2021年的时候,UP主老师好我叫何同学就发布了一条制作AirDesk的视频,随后迅速在社交媒体中引发了大量关注。 当时,该视频为B站全站…

ROS:launch文件加载:已有地图(yaml)、rviz、turtlebot3模型、gazebo模型、move_base、amcl

一.下载turtlebot3、建立地图文件yaml和pgm ROS:gazebo创建仿真地图,turtlebot3加载仿真地图进行建图,生成yaml和pgm地图信息_Charlesffff的博客-CSDN博客 二.创建目录 其中amcl.launch和move_base.launch目录在turtlebot3中: 其…

把二叉搜索树转换为累加树

1题目 给出二叉 搜索 树的根节点,该树的节点值各不相同,请你将其转换为累加树(Greater Sum Tree),使每个节点 node 的新值等于原树中大于或等于 node.val 的值之和。 提醒一下,二叉搜索树满足下列约束条件…

jpg怎么转换成png格式?四种转换方式试试看

很多时候,我们需要将JPG(Joint Photographic Experts Group)格式转换成PNG(Portable Network Graphics)格式,从而便于图片的使用。那么,将JPG转换成PNG有什么作用呢?首先&#xff0c…

【LeetCode】203,移除链表元素。 难度等级:简单。链表入门题目,值得深入研究。

文章目录 一、题目二、解答:迭代法,引入一个新的头结点三、难点解释 【LeetCode】203,移除链表元素。 难度等级:简单。 本题是链表入门题目,值得深入研究。 一、题目 二、解答:迭代法,引入一个…

Kali-linux使用SET实施攻击

前面介绍了社会工程学工具包(SET)的简单使用。为了能帮助用户更容易的理解社会工程学的强大功能。本节将介绍使用社会工程学工具包实施各种攻击。 7.4.1 针对性钓鱼攻击向量 针对性钓鱼攻击向量通过构造特殊文件格式的漏洞进行渗透攻击,如利…

python实现神经网络之---构建神经元模型1(python3.7)

本文主要要以周志华的机器学习书为蓝本编写 第5章神经网络 5.1python 实现神经元模型 神经网络中最基本的成分是神经元 (neuro且)模型,如下图所示: 1943 年, [McCulloch and Pitts, 1943] 将上述情形抽象为国 5.1所示的简单模型&#xff0c…

全球分布式云大会:AntDB超融合流式实时数仓,打造分布式数据库新纪元

日前,全球分布式云大会北京站在北京金茂万丽酒店举办,亚信科技AntDB数据库受邀参会,会上技术负责人北陌发表以“AntDB超融合流式实时数仓,打造分布式数据库新纪元”为主题的演讲,通过分享AntDB在数据库前沿技术的研发实…

打印菱形(两种思路)

一、输入的行数等于上半部分的金字塔行数 思路: 仔细观察图形,可以发现,此图形中是由空格和*按照不同个数的输出组成的。 上三角:先输出空格,后输出*,每行中空格:从上往下,一行减少一…

国外各大学和学院对于ChatGPT使用立场总结

ChatGPT和生成式AI的快速普及对教育这个专业领域带来了威胁——全国各地的大学和学院都召开了紧急会议,讨论如何应对学生利用AI作弊的风险。 一部分学校和教授担心这项技术会成为学生在论文或其他写作作业和考试中寻求捷径的工具。而这种生成内容的方式往往能够绕开…

Deepstream使用Rabbitmq 和kafka发送消息(天坑)unable to connect to broker library

连接服务器失败,要么是是本地参数没设对, 要么服务器没开! 使用Kafka发送消息好搞,按照 /opt/nvidia/deepstream/deepstream-6.2/sources/libs/kafka_protocol_adaptor/README 一步一步来就行了,前提是要搞kafka 环境搭建开启&am…

特殊区域在OSPF协议中的分析

我们都知道OSPF路由器协议是基于SPF算法计算最优路径,当用于SPF算法的LSDB的越大,那么路由器的计算压力就越大,对于一些性能不佳的OSPF路由器来说,如何尽可能的减小LSDB规模也就成了OSPF设计时要考虑到的问题,为了进一…

DMA-STM32

DMA-STM32 DMA(Direct Memory Access)直接存储器存取 DMA可以提供外设和存储器或者存储器和存储器之间的高速数据传输,无须CPU干预,节省了CPU的资源 12个独立可配置的通道:DMA1 (7个通道),DMA2 (5个通道) 每个通道都支持软件触发和特定的硬件触发 STM32…

第七章.链接

概述 链接:将多个目标文件或库文件组合在一起,生成可执行文件或共享库 可以执行于编译时、加载时、运行时,使得分离编译成为可能,由链接器自动实现链接器:将各个模块之间的符号引用解析为实际的内存地址,生…

大厂面试官带你Get求职面试核心技巧

本文首发自[慕课网] ,想了解更多IT干货内容,程序员圈内热闻,欢迎关注"慕课网"及“慕课网公众号”! 作者:Brain|慕课网名师 Hello,大家好,我是Brian 老师,在开发领域摸爬滚…

Day01 关系型数据MySQL简介与多平台安装配置

在大数据的课程中,我们需要处理的数据来自不同的渠道,其中有一个很重要的渠道就是关系型数据库中存储的数据。在企业中,会把业务数据存储在关系型数据库中,一般以MySQL居多。另外,我们在后续的课程中需要学习Hive、Spa…