场景

在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. 第十六篇:jQuery基础

    一.jQuery和Dom的关系 http://jquery.cuishifeng.cn/ 模块,类库 DOM/BOM/JavaScript的类库: 二.jQuery选择器 1.查找元素 DOM: 10 ...

  2. nginx重新整理——————开篇[一]

    前言 因为整理http协议,顺便把nginx 整理了. 正文 主要作用: 正向代理 反向代理(负载均衡.缓存等) 静态资源 nginx 的优点: 适合高并发,一个进程可以处理很多的请求. 扩展性强,有 ...

  3. 重新整理.net core 计1400篇[七] (.net core 中的依赖注入)

    前言 请阅读第六篇,对于理解.net core 中的依赖注入很关键. 和我们上一篇不同的是,.net core服务注入保存在IServiceCollection 中,而将集合创建的依赖注入容器体现为I ...

  4. python将日志生成到文件和控制台

    # 日志收集设置import logging, osfrom logging.handlers import TimedRotatingFileHandlerimport datetimecurren ...

  5. super()和super(props)

    一.ES6类 在ES6中,通过extends关键字实现类的继承,方式如下: class sup { constructor(name) { this.name = name } printName() ...

  6. linux中nginx的https证书过期替换

    linux中nginx的https证书过期替换 工作记录,不然老是忘 一般提示这个就说明过期了 首先把新的证书换上去,最好和之前的文件名字一样,这样就不用改配置文件了 路径就自己找了需要,不过一般挺好 ...

  7. [FAQ] Windows 终端 git status 不识别文件名大小写的修改

      当我们修改了文件名的大小写,git status 显示没有文件改动. 出现这种情况,首先看一下 git 的配置项是否忽略了文件问大小写: $ git config core.ignorecase ...

  8. 2019-8-31-dotnet-使用-Environment.FailFast-结束程序

    title author date CreateTime categories dotnet 使用 Environment.FailFast 结束程序 lindexi 2019-08-31 16:55 ...

  9. vue首次缓存判断

    在向本地缓存存值前,判断localstory是否已经存在某个属性,没有就正常存,有就替换掉 created(){ if(localStorage.getItem("属性名") != ...

  10. Java面试题:你知道Spring的IOC吗?那么,它为什么这么重要呢?

    Spring的IOC(控制反转)是一种设计模式,它允许开发者将对象的创建和管理交给Spring框架来完成.在Spring中,IOC允许开发者将对象依赖关系从代码中分离出来,从而使代码更加灵活.可重用和 ...