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

项目结束之后,有需要将winForm程序打包成.exe文件提供给用户。

这里记录一下打包过程。

1:首先获取打包插件,如果你的VS已经安装,忽略此步骤。

点击 工具->扩展和更新,选择联机,搜索installer,安装。

1.png

Vs2010以上版本基本上都有安装。

2:创建一个安装向导项目

创建过程如下图所示:

2.png

3.png

4.png

5.png

我们这里没有需要添加的文件,直接下一步。

6.png

至此,新建安装向导程序创建完成。

我们将之前的源码项目变成Release模式重新生成,需要注意一个小细节,引用的第三方库的属性需要改成从本地复制,不然可能会有问题。

7.png

下边我们将我们源码项目中Release目录中的文件添加到新建的安装向导程序中。

如下图所示:

8.png

添加完成之后,重新生成解决方案。我的项目产生了如下报错:

9.png

错误:面向“AMD64”的文件“Utils.DLL”与项目的目标平台“x86”不兼容    

解决方法:

10.png

点击项目,查看其属性中的TargetPlatform(目标平台)属性,将其改为X64,如上图所示

重新生成,这次没有报错。

下一步,点击左边栏的“应用程序文件夹”,修改其属性DefaultLocation

将DefaultLocation 从 [ProgramFilesFolder][Manufacturer][ProductName] 修改为 [ProgramFilesFolder][ProductName],否则安装路径不允许用户选择。

11.png

添加快捷方式

程序安装成功之后,我们一般都习惯在桌面及开始菜单栏中生成快捷启动方式:添加方法如下:

14.png

以我的程序来举例,给UMS创建快捷方式,分别拖拽至用户的“程序”菜单及用户桌面文件夹中,上图红框标注所示。

 

接下来我们给我们的软件添加logo,单击“用户桌面”目录。修改ICON属性。

13.png

图标设置完成。

3:创建卸载程序,这个可以不创建,程序可在控制面板中进行卸载,但是好容易写篇博客,尽可能将所有的步骤都尝试一下,用不用再说。

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

14.png

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

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

15.png

16.png

至此,卸载程序创建成功。

重新生成项目,如下图所示:

17.png

有好的建议,请在下方输入你的评论。

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

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

相关文章

【SpringCloud】Gateway使用

文章目录 概述阻塞式处理模型和非阻塞处理模型概念阻塞式处理模型 三大核心概念 工作流程使用POMYML启动类配置路由通过编码进行配置动态路由常用的Route Predicate自定义全局过滤器自定义filter 官网 https://cloud.spring.io/spring-cloud-static/spring-cloud-gateway/2.2.1…

使用QT可视化设计对话框详细步骤与代码

一、创建对话框基本步骤 创建并初始化子窗口部件把子窗口部件放到布局中设置tab键顺序建立信号-槽之间的连接实现对话框中的自定义槽 首先前面三步在这里是通过ui文件里面直接进行的,剩下两步则是通过代码来实现 二、项目创建详细步骤 创建新项目 为项目命名 为…

uniapp小程序实现上传图片功能,并显示上传进度

效果图: 实现方法: 一、通过uni.chooseMedia(OBJECT)方法,拍摄或从手机相册中选择图片或视频。 官方文档链接: https://uniapp.dcloud.net.cn/api/media/video.html#choosemedia uni.chooseMedia({count: 9,mediaType: [image,video],so…

数据结构---图

这里写目录标题 图的基本概念和术语基本概念和术语1基本概念和术语2 图的类型定义抽象数据类型定义二级目录二级目录 一级目录二级目录二级目录二级目录二级目录二级目录二级目录 图的基本概念和术语 基本概念和术语1 V代表顶点的有穷非空集合 E代表边的有穷集合 n为顶点 有向…

高效解决Anaconda Prompt报错Did not find VSINSTALLDIR这类问题

文章目录 回忆问题解决问题step1step2 回忆问题 类似于划红线部分然后还有很多行的报错信息,最后一行肯定是红色划线部分 解决问题 step1 找到 D:\Anaconda\envs\pytorch\etc\conda\activate.d在这个文件夹内会有两个文件,删除 vs2017_compiler_v…

RDMA qp数量和RDMA性能

QP数量上升性能下降 ​​​​​​https://icnp21.cs.ucr.edu/papers/icnp21camera-paper30.pdf 在现代云数据中心中,大规模分布式应用通常构建在许多机器上,需要使用大量并发连接进行频繁的网络通信[4]–[6]。但是,RDMA的性能会随着连接数的…

最长重复子数组(力扣)动态规划 JAVA

给两个整数数组 nums1 和 nums2 ,返回 两个数组中 公共的 、长度最长的子数组的长度 。 示例 1: 输入:nums1 [1,2,3,2,1], nums2 [3,2,1,4,7] 输出:3 解释:长度最长的公共子数组是 [3,2,1] 。 示例 2: 输…

谈谈IP地址和子网掩码的概念及应用

个人主页:insist--个人主页​​​​​​ 本文专栏:网络基础——带你走进网络世界 本专栏会持续更新网络基础知识,希望大家多多支持,让我们一起探索这个神奇而广阔的网络世界。 目录 一、IP地址的概念 二、IP地址的分类 1、A类 …

Eclipse如何设置快捷键

在eclopse设置注释行和取消注释行 // 打开eclipse,依次打开:Window -> Preferences -> General -> Key,

ubuntu中安装python

最简单方便的是 apt 使用第三方的 ppa 源,然后直接 apt 安装 python3.9 安装 software-properties-common 获取add-apt-repository命令:apt install -y software-properties-common添加第三方的 ppa 源:add-apt-repository ppa:deadsnakes/p…

【计算机视觉|生成对抗】改进的生成对抗网络(GANs)训练技术

本系列博文为深度学习/计算机视觉论文笔记,转载请注明出处 标题:Improved Techniques for Training GANs 链接:[1606.03498v1] Improved Techniques for Training GANs (arxiv.org) 摘要 本文介绍了一系列应用于生成对抗网络(G…

IntelliJ IDEA 官方网站 idea官网 http://www.jetbrains.com/idea/

IntelliJ IDEA 官方网站 idea官网 http://www.jetbrains.com/idea/ Idea下载官网一键直达: 官网一键直达