原文地址:https://blog.csdn.net/houheshuai/article/details/78518097

在要打包项目的解决方案 右键→添加→ 新建项目

后出现如下选择

如果没有Visual Studio Installer 说明没有安装打包插件

安装打包插件:Microsoft Visual Studio 2017 Installer Projects

工具 --> 扩展和更新 --> 联机,搜索Microsoft Visual Studio 2017 Installer Projects

下载并安装,下载过程中有时候很慢,多试几次。

安装好以后,重启vs2017

回到我们的新建项目,选择其他项目类型 --> Visual Studio Installer --> Setup Project --> 输入项目名 --> 确定

在出现的界面中,右键Application Folder  →   Add  →  项目输出

选择 主输出 点击确定

右键【主输出from  你的项目名称】  选择  Create Shortcut to...  生成快捷方式。

修改快捷方式的名称,并拖入 User‘s Desktop

右键  setup project,选择生成

生成成功后,打开所在文件夹就可以看到生成后的安装文件

一个exe,一个msi。

msi是重点,可直接安装在Windows中。

exe是需要调用msi文件的。

VS2017打包C#桌面应用的更多相关文章

  1. 用node-webkit把web应用打包成桌面应用

    node-webkit是一个Chromium和node.js上的结合体,通过它我们可以把建立在chrome浏览器和node.js上的web应用打包成桌面应用,而且还可以跨平台的哦.很显然比起传统的桌面 ...

  2. vs2017打包安卓项目简述

    1.使用vs2017创建安卓项目 2.选择Release模式编译项目 3.项目存档 4.签名分发 存档完成后,点击分发按钮进入如下界面 按要求输入签名信息 选择apk保存位置 5.分享apk文件 参考 ...

  3. Electron把网页打包成桌面应用并进行源码加密

    前言 最近想把自己用html+css+js做的网页界面打包成桌面应用,网上一搜,发现Electron是一个不错的选择,试了试,发现效果真的不错.这里记录一下打包过程以作记录,便于自己以后查看学习. 一 ...

  4. electron将网站打包成桌面应用

    需求同 NW.js将网站打包成桌面应用 1. 从github上克隆electron示例项目 git clone https://github.com/electron/electron-quick-s ...

  5. 打包JavaFX11桌面应用程序

    打包JavaFX11桌面应用程序 这是JavaFX系列的第二弹,第一弹在这里 在第一弹中,我们使用的是OpenJDK8,但是OpenJDK8和Oracle Java JDK不一样,它没有内置JavaF ...

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

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

  7. VS2017打包注册IE插件及修改IE安全选项设置

    前言 最近项目需要在浏览器环境下读取员工身份证信息,要实现网页与硬件设备通信,考虑了几种实现方式: 1.借助ActiveX插件,通过程序库直接与设备通信. 优点:厂家提供了IE插件,开发简单 缺点:只 ...

  8. 前端打包成桌面应用、以及chrome扩展

    前段时间在利用工作之余开发了tomato timer这个蕃茄钟,然后部署到github.io上,由于greatway太厉害,偶尔会有打不开的情况.上周末对比做了扩展和改进,使其成为chrome的插件, ...

  9. VS2017打包设置

    本文为网络贴文,引用于:http://www.cnblogs.com/overstep/p/6942423.html 一.  安装打包插件: 安装打包插件:Microsoft Visual Studi ...

随机推荐

  1. python 管道 事件(Event) 信号量 进程池(map/同步/异步)回调函数

    ####################总结######################## 管道:是进程间通信的第二种方式,但是不推荐使用,因为管道会导致数据不安全的情况出现 事件:当我运行主进程的 ...

  2. python 面向对象(五)约束 异常处理 MD5 日志处理

    ###############################总结###################### 1.异常处理 raise:抛出异常 try: 可能出现错误代码 execpt 异常类 a ...

  3. Kafka技术内幕 读书笔记之(四) 新消费者——新消费者客户端(二)

    消费者拉取消息 消费者创建拉取请求的准备工作,和生产者创建生产请求的准备工作类似,它们都必须和分区的主副本交互.一个生产者写入的分区和消费者分配的分区都可能有多个,同时多个分区的主副本有可能在同一个节 ...

  4. Linux记录-HDFS副本机制

    1. 副本策略 NameNode具有RackAware机架感知功能,这个可以配置. 若client为DataNode节点,那存储block时,规则为:副本1,同client的节点上:副本2,不同机架节 ...

  5. C#设计模式(7)——适配器模式

    1.适配器模式介绍 适配器模式的作用是将一个类的接口,转换成客户端希望的另外一种接口,适配器作为原始接口(我们的类中本来具有的功能)和目标接口(客户端希望的功能)之间的桥梁.举个例子:我们知道安卓数据 ...

  6. springboot的lombok

    lombok概述 lombok简介 Lombok想要解决了的是在我们实体Bean中大量的Getter/Setter方法,以及toString, hashCode等可能不会用到,但是某些时候仍然需要复写 ...

  7. Spark常见问题汇总

    原文地址:https://my.oschina.net/tearsky/blog/629201 摘要: 1.Operation category READ is not supported in st ...

  8. python中的顺序表

    Python中的list和tuple两种类型采用了顺序表的实现技术,tuple是不可变类型,即不变的顺序表,因此不支持改变其内部状态的任何操作,而其他方面,则与list的性质类似. list的基本实现 ...

  9. Struts2的初级应用

    做一个登录注册 1.把Struts2框架的必须包导入到项目中(http://struts.apache.org/) 2.web.xml <?xml version="1.0" ...

  10. nth-of-type(n)

    :nth-of-type(n) 选择器匹配属于父元素的特定类型的第 N 个子元素的每个元素. p:nth-of-type(2) { background:#ff0000; } 规定属于其父元素的第二个 ...