当前位置: 首页 > news >正文

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.lryc.cn/news/128399.html

相关文章:

  • 【python实现向日葵控制软件功能】手机远程控制电脑
  • 手机系统录屏怎么录?有什么其他录制方法和注意事项?
  • 记录一个编译TubeTK时的报错:at_check问题
  • k8s v1.27.4二进制部署记录
  • C# API 文档注释规范
  • 分类预测 | Matlab实现基于TSOA-CNN-GRU-Attention的数据分类预测
  • 《深度剖析K8s》学习笔记
  • 神经网络基础-神经网络补充概念-49-adam优化算法
  • Java:正则表达式书写规则及相关案例:检验QQ号码,校验手机号码,邮箱格式,当前时间
  • 图数据库_Neo4j_Centos7.9安装Neo4j社区版3.5.4_基于jdk1.8---Neo4j图数据库工作笔记0011
  • 使用Rust编写的一款使用遗传算法、神经网络、WASM技术的模拟生物进化的程序
  • UE4/UE5 “无法双击打开.uproject 点击无反应“解决
  • 【前端】深入理解CSS定位
  • 【问题】分布式事务的场景下如何保证读写分离的数据一致性
  • 常见的Web安全漏洞有哪些,Web安全漏洞常用测试方法介绍
  • 随机微分方程
  • 下载安装并使用小乌龟TortoiseGit
  • npm ERR!Cannot read properties of null(reading ‘pickAlgorithm’)报错问题解决
  • web前端tips:js继承——组合继承
  • (7)(7.3) 自动任务中的相机控制
  • Python 爬虫小练
  • vue3 事件处理 @click
  • 【第三阶段】kotlin语言使用replace完成加解密操作
  • springBoot是如何实现自动装配的
  • 基于python+MobileNetV2算法模型实现一个图像识别分类系统
  • 管理类联考——逻辑——真题篇——按知识分类——汇总篇——二、论证逻辑——归纳评价——归纳谬误
  • C++适配器模式
  • cocos creator 设置精灵镜像翻转效果
  • kafka的位移
  • 大数据平台运维实训室建设方案