C#如何打包EXE程序生成setup安装文件

C#如何打包EXE程序生成setup安装文件


作为研发人员,在本机上开发的winform wpf或者控制台程序需要发给其他人测试时候,一般需要对其进行打包生成setup安装文件,今天第一次,搜了下资料,记录如下:

注:本程序是一个利用winform实现的客户端程序,解决方案为

第一,右击“解决方案Client”->添加“新建项目”-》“其他项目类型”-》“安装和部署”-》“安装向导”





然后点击下一步:


这里保持默认即可“为WIndows应用程序创建一个安装程序”-》


选择“主输出来自**(项目名称:这里是test1)”——》


这里我们没有额外附件添加,所以直接点击下一步即可,“完成”即可。


到这里第一部分完成,接下来就是修改属性了


右击解决方案中的setup1,选择“属性”-》


第二,点击“系统必备”-》


单选按钮中,选择“从与我的应用程序相同的位置下载系统必备组件”-》确定

第三,点击,左边的“应用程序文件夹”-》

从右侧属性列表中,修改属性DefaultLocation“[ProgramFilesFolder][Manufacturer]\[ProductName]”为:[ProgramFilesFolder]\[ProductName],否则安装路径不允许用户选择。

第四,点击“应用程序文件夹”,右击右边的
“主输出来自Client(..”创建其快捷方式(快捷方式可以改名)-》

将快捷方式拖拽到“用户的程序菜单”和“用户桌面”,这样安装完成后,就会在桌面和用户的程序菜单创建相应的图标。

第五步,创建卸载程序。右击”应用程序文件夹“,点击”添加“,选择”文件“,然后将"C:\Windows\System32" 下面的”msiexec.exe“文件给添加进来,如果找不到,你可以直接搜。当然,你也可以再给msiexec.exe创建一个快捷方式命名为”UnInstall“。



命名了快捷方式之后,将Setup属性(点击解决方案里面的setup弹出属性)ProductCode拷贝到Uninstall属性的Arguments里面:

同时在前头加上 ”/X “,注意:x后面有一个空格。


第六步,添加程序图标,右键点击“用户桌面”中的快捷方式,然后再其属性中找到,Icon属性,浏览选取你所要添加的图标,记住,应该先将图标放在打包的文件夹中,要不然无法进行指定。


第刘,右击setup1项目名称,选择“生成”,然后到,生成的目录下拷贝出setup.exe即可安装。

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

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

相关文章

PHP正则表达式

php正则表达示的定界符 PHP的正则表达示定界符的规定如下: 定界符,不能用a-z A-Z 0-9 其他的都可以用。必须成对出现,有开始就有结束。 我们来例几个例子: /中间写正则/ 正确%中间写正则% 正确^中间写正则^ 正确中间写正则 正确(…

最具戏剧性的分析诊断案例——十分钟锁定数据库性能“元凶”

昨天,正好有点空时间想看看书,结果,刚打开书,没看几个字儿,接到用户电话说:一个库有问题,希望能帮忙看下。因为我知道他们那边也有自己的专职DBA,于是问:没让人给看看吗&…

Python黑科技:在家远程遥控公司电脑,python+微信一键连接!

有时候需要远程家里的台式机使用,因为我平时都是用 MAC 多,但是远程唤醒只能针对局域网,比较麻烦,于是我想用微信实现远程唤醒机器。 *注意:全文代码可左右滑动查看 准备工作 本程序主要是实现远程管理 Windows10操作系…

c#通过app.manifest使程序以管理员身份运行

通常我们使用c#编写的程序不会弹出这个提示,也就无法以管理员身分运行。微软的操作系统使用微软的产品方法当然是有的,通过app.manifest配置可以使程序打开的时候,弹出UAC提示需要得到允许才可以继续,这样就获得了管理员的权限来执…

Oracle 作业

Oracle 作业 dbms_job与 dbms_scheduler 用于安排和管理作业队列,通过使用作业,可以使ORACLE数据库定期执行特定的任务。 一. dbms_job 1.1. 创建 variable jobno number; begin dbms_job.submit(:jobno,proce_t;, sysdate, sysdate1/24/60); commit; end; / 1.2. 参数 Job 输出…

企业级 Spring Boot 教程 (十四)用restTemplate消费服务

构架工程 创建一个springboot工程,去消费RESTFUL的服务。这个服务是 http: ///gturnquist-quoters.cfapps.io/api/random ,它会随机返回Json字符串。 Spring Cloud大型企业分布式微服务云架构源码请加一七九一七四三三八零 在Spring项目中,它…

MOS管基本认识(快速入门)

1. 三个极的判定G极(gate)—栅极,不用说比较好认 S极(source)—源极,不论是P沟道还是N沟道,两根线相交的就是 D极(drain)—漏极,不论是P沟道还是N沟道,是单独引线的那边2. N沟道与P沟道判别箭头指向G极的是N沟道 箭头背…

基础构建模块

5 基础构建模块 Java平台类库包含了丰富的并发基础构建模块,例如线程安全的容器类以及各种用于协调多个相互协作的线程控制流的同步工具类(Synchronizer)。本章将介绍其中一些最有用的并发构建模块。 5.1同步容器类 同步容器类包括Vector和Hashtable,二者…

TCP定时器

1. TCP中7种定时器 TCP中有7中定时器 (1)建立连接定时器(connection-establishment timer) (2)重传定时器(retransmission timer) (3)延迟应答定时器(delayed ACK timer) (4)坚持定时…

sql优化大全

1. 优化SQL步骤 1. 通过 show status和应用特点了解各种 SQL的执行频率 通过 SHOW STATUS 可以提供服务器状态信息,也可以使用 mysqladmin extende d-status 命令获得。 SHOW STATUS 可以根据需要显示 session 级别的统计结果和 global级别的统计结果。 如显示当前s…

Halcon实现边缘提取

一、边缘提取 1、设置ROI兴趣区域 2、快速二值化,并连接相邻区域。 这样做的目的是进一步减少目标区域,通过二值化将目标区域大概轮廓提取出来 3、提取最接近目标区域的轮廓 常用函数有boundary,gen_contour_region_xld 4、根据自己的需求提取…

软件工程网络15个人阅读作业1 201521123038 游舒婷

软件工程网络15个人阅读作业1 201521123038 游舒婷 1.博客园地址 sakurai3104 2.码云地址 sakurai3104 3.阅读与思考 (1)回想一下你初入大学时对网络工程专业的畅想 当初你是如何做出选择网络工程专业的决定的? 填报志愿的时候,大…

18LaTeX学习系列之---LaTeX的参考文献

目录 目录前言(一)简单的参考文献1.说明2.源代码3.输出效果(二)以文件管理的方式1.说明:2.源代码:3.输出效果(三)直接从源网站获取1.说明2.操作目录 本系列是有关LaTeX的…

Vue 2.0 v-for 响应式key, index及item.id参数对v-bind:key值造成差异研究

Vue 2.0 v-for 响应式key, index及item.id参数对v-bind:key值造成差异研究 在github上阅览README.md以获得最佳阅读体验,点这里 v-for响应式key, index及item.id参数对v-bind:key值造成差异研究 实验背景 通常情况下,我们渲染一个li列表,采用…

halcon edges_sub_pix算子

转载http://blog.51cto.com/juwen/133003 介绍一下Canny算子: 使用累计直方图计算两个阀值。凡是大于高阀值的一定是边缘; 凡是小于低阀值的一定不是边缘;如果检测结果大于低阀值但又小于高阀值,那就要看这个像素的邻接像素中有…

Python 基础(常用数据结构)

常用数据结构 1)元组 元组是一种静态的数据结构,无法修改,若要修改只能重新生成新的元组。 输出结果: 元组元素的获取是通过索引值去获得的;例如上面的tup1[0]返回apple;另外你可以直接把tup1一次性赋给多个…

Java IO(二)——RandomAccessFile

一、RandomAccessFile RandomAccessFile类可以说是Java语言中功能最为丰富的文件访问类,它提供了众多的文件访问方法。RandomAccessFile类支持"随机访问"方式,可以跳转到文件的任意位置处读写数据。要访问一个文件的时候,不想把文件…

halcon select_shape_xld按区域大小描绘xld

常用与对xld进行以面积、长、宽进行XLD的选择操作。 select_shape_xld(XLD : SelectedXLD : Features, Operation, Min, Max : ) XLD:需要选择的xld SelectedXLD:选择后的xld Features:面积、长、高等 Operation:and、or等 Min:最小值门…

工业三防手持终端如何选

物联宇手持终端作为工业级的数据采集器,目前[]()已广泛应用在物流快递、生产制造、零售、医疗、公共事业等领域。由于工业环境的复杂性,手持终端在恶劣的环境下作业,在性能、稳定性、电池耐用性上的要求都较高,同时还必须采用一些…

centos7 安装python3

1.查看是否已经安装Python CentOS 7.2 默认安装了python2.7.5 因为一些命令要用它比如yum 它使用的是python2.7.5。 使用 python -V 命令查看一下是否安装Python 然后使用命令 which python 查看一下Python可执行文件的位置 可见执行文件在/usr/bin/ 目录下,切换到该…