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

 打包成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,添加自定义操作,浏览选择上面的发布项即可

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

三、卸载操作遇到了新问题,设置了主输出无效

原本clearResource使用的是.Net 6.0框架,这个框架如果用户没安装会提示需要安装,所以重新创建了一个console窗口项目,使用.net framework框架,然后就一直不执行,明明测试文件管理器中直接双击运行exe是没问题的,网上也没搜到解决方案,最后在customAction的属性里改了一个东西就可以了。点击这个主输出,属性面板里面有一个InstallerClass,设置成fasle就可以了。

因为毕竟我创建的是个普通console项目,不是安装程序类。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值