场景

在VS中进行Winform开发时,可以直接在项目上右击选择生成

则会在项目的bin目录下直接生成exe等文件,此时将这个文件夹直接整个复制到别的地方就可以运行。

但是如果将其做成安装包安装的形式,并且还可以进行卸载应该怎么实现。

注:

博客:
https://blog.csdn.net/badao_liumang_qizhi
关注公众号
霸道的程序猿
获取编程相关电子书、教程推送与免费下载。

实现

1、需要VS安装扩展Microsoft Visual Studio Installer Projects,打开VS-管理扩展-搜索install

安装之后需要重新,这里是VS2019,重启之后等待安装完成。

2、在当前解决方案下添加-新建项目-Setup Project

3、项目添加成功之后-右击Application Folder(应用程序文件夹)-Add-文件

找到上面项目生成后的bin目录下所有的文件,添加进来

添加完之后

4、添加卸载程序,还是Application Folder下-Add-文件-找到C://Windows/System32下的msiexec.exe。

然后右击添加的msiexec.exe文件-点击Create Shortcut to misexec.exe

然后会得到一个Shortcut to msiexec.exe

5、点击新建的安装程序的项目,查看其ProductCode属性

复制该productCode的值

右击上面这个Shortcut to msiexec.exe,修改其Arguments属性为

/X空格复制的productCode值

注意这里有个空格

然后将这个Shortcut to msiexec.exe拖动到User's Program Menu(用户的程序菜单)

6、右击Application Folder-Add-项目输出

选择项目-主输出-确定

得到主输出 from badaoDemo(Active),在其上面右击-Create Shortcut to 主输出 from badaoDemo(Active)

然后将Shortcut to 主输出 from badaoDemo(Active)拖动到User's Destop目录下

这就是程序的快捷方式,可以更改其名字和图标等。

7、如果项目需要指定的环境,可以右击Setup1项目-属性-Prerequisites,选择必须的组件

8、右击Setup1项目-生成

此时在项目的bin目录下就有安装程序setup.exe了

双击该exe进行安装

安装之后在桌面就有快捷方式了,双击快捷方式启动

卸载的话直接在控制面板中找到进行卸载即可

博客园: https://www.cnblogs.com/badaoliumangqizhi/ 关注公众号 霸道的程序猿 获取编程相关电子书、教程推送与免费下载。

Winform程序在VS中打包成安装程序(带卸载)的更多相关文章

  1. C# winform 打包成安装程序(exe)

    C# 打包成安装程序 1.扩展-> 安装扩展 联网搜索 install     2.新建安装程序项目      3.添加程序   4.添加打包需要的文件 5. 添加x86与x64文件夹,并添加s ...

  2. sencha touch打包成安装程序

    为了更好地向大家演示如何打包一个sencha touch的项目,我们用sencha cmd创建一个演示项目,如果你的sencha cmd环境还没有配置,请参照 sencha touch 入门系列 (二 ...

  3. sencha touch 扩展篇之将sencha touch打包成安装程序(上)- 使用sencha cmd打包安装程序

    由于最近一直忙着android原生的开发,很久没有更新博客了,官方的sencha cmd工具功能非常强大,创建项目,压缩项目,打包安装程序都能轻松实现,这讲我们就给大家介绍下如何使用sencha cm ...

  4. sencha touch 扩展篇之将sencha touch打包成安装程序(下)- 使用phonegap打包安装程序

        这讲我们来讲解下如何使用phonegapa创建项目环境并通过她们将sencha touch打包成app,这里我们只讲解打包android的apk,打包ios的过程有点类似,但是需要在mac环境 ...

  5. electron之打包成安装程序

    1.安装electron-winstaller npm install --save-dev electron-winstaller 2.创建一个build.js var electronInstal ...

  6. VS2019打包WPF安装程序最新教程

    VS2019打包WPF安装程序最新教程,使用Visual Studio 2019开发的WPF程序如果想要打包为安装程序,除了在VS2019找到WPF项目类库直接右键发布之外,更常用的还是将其打包为ex ...

  7. C# winform程序怎么打包成安装项目(VS2010图解)

    作为研发人员,在本机上开发的winform.wpf或者控制台程序需要发给其他人测试时候,一般需要对其进行打包生成setup安装文件,根据网上查找的资料并结合自己打包成功,记录如下: 注:本程序是一个利 ...

  8. C# 程序打包成安装项目

    Xaml设置图标https://blog.csdn.net/u014234260/article/details/73648649 winform程序控制面板中卸载显示图标https://blog.c ...

  9. 使用py2exe将python程序打包成exe程序

    近日帮朋友写了个python小程序,从互联网上抓取一些需要的文章到本地.为了运行方便,希望能转换成exe程序在windows下定期执行.从百度上找了些文章,发现py2exe的应用比较多,遂使用之. 1 ...

  10. nodejs打包成桌面程序(exe)的进阶之路

    nodejs打包成桌面程序(exe)的进阶之路 node js bat 前端 计划任务 前言:最近的研究,请大佬们细品 第一篇 - 任务计划程序篇 说真的研究到将nodejs打包成可执行的exe文件是 ...

随机推荐

  1. 鸿蒙HarmonyOS实战-ArkUI组件(Menu)

    一.Menu组件 Menu组件是一种常见的用户界面(UI)控件,用于在移动应用程序中显示可选项列表.它通常由一系列链接或按钮组成,以帮助用户导航和选择所需的操作.Menu组件可以在水平或垂直方向上呈现 ...

  2. WPS HW 漏洞 学习

    复现过程 2023 年 HW 出现 WPS 0day POC 影响版本: WPS Office 2023个人版<11.1.0.15120 WPS Office 2019企业版<11.8.2 ...

  3. 手写前端 serialize

    前言 在jquery中,写下我们很方便序列化我们的表单,比如说: window.onload=function(){ var form=$('#bitgood'); // document.getEl ...

  4. whistle代理使用

    1. 介绍 whistle(读音[ˈwɪsəl],拼音[wēisǒu])基于Node实现的跨平台web调试代理工具,类似的工具有Windows平台上的Fiddler,主要用于查看.修改HTTP.HTT ...

  5. 谈谈PolarDB-X在读写分离场景的实践

    简介: 针对写少读多的业务可以考虑通过添加数据库节点来使其达到提升性能的目的,但添加节点,往往涉及到数据的搬迁,扩容周期比较长,很难应对徒增的业务流量,这个时候可以考虑采用读写分离的方式,将读写流量做 ...

  6. 以“升舱”之名,谈谈云原生数据仓库AnalyticDB的核心技术

    简介: 企业级云原生数据仓库AnalyticDB提出了升舱计划,旨在承担和帮助金融.运营商.政务等行业构建下一代数据管理和分析系统,以应对不断增长的数据规模,业务数字化转型,和传统数仓替换升级需求.7 ...

  7. 阿里云张献涛:自主最强DPU神龙的秘诀

    ​简介:读懂云计算,才能看清DPU热潮. 微信公众号搜索"弹性计算百晓生",获取更多云计算知识. 如果细数最近火爆的科技概念,DPU必然位列其中. 这是英伟达一手捧红的新造富故事, ...

  8. 阿里开源支持10万亿模型的自研分布式训练框架EPL(EasyParallelLibrary)

    ​简介:EPL背后的技术框架是如何设计的?开发者可以怎么使用EPL?EPL未来有哪些规划?今天一起来深入了解. ​ 作者 | 王林.飒洋 来源 | 阿里技术公众号 一 导读 最近阿里云机器学习PAI平 ...

  9. 重磅官宣:Nacos2.0发布,性能提升10倍

    简介: ​Nacos2.0 作为一个跨代版本,彻底解决了 Nacos1.X 的性能问题,将性能提升了 10 倍. 作者:席翁 继 Nacos 1.0 发布以来,Nacos 迅速被成千上万家企业采用,并 ...

  10. [FAQ] panic: listen tcp :xxxx: bind: Only one usage of each socket address (protocol/network address/port) is normally permitted.

    在 Go 中运行服务之前的绑定端口这一步,如果端口号被占用了,那么会提示它只能使用一次. 换个端口号或者检查端口号的占用程序. Link:https://www.cnblogs.com/farwish ...