VS2017、VS2019没有Setup安装项目(Visual Studio Installer)_解决方案
前言: VS2010中有一个自带的安装部署项目,叫:Visual Studio Installer ,我们通常称为:setup项目,是一个用于自定义安装部署的项目方案。但是在VS2017,VS2019中均不见了,安装程序组件中也没有,通过强大的谷歌和百度,发现有一个扩展方案,在VS市场里有一个可用的VS扩展,一般还很难找:
先把下载地址粘贴给各位:
VS2017,VS2019 下载Setup(Visual Studio Installer)项目扩展地址: https://marketplace.visualstudio.com/items?itemName=VisualStudioClient.MicrosoftVisualStudio2017InstallerProjects
我的另一篇博文也提及过这个问题:https://www.cnblogs.com/lxhbky/p/10616524.html
VS2010自带安装项目截图:

VS2017,VS2019新扩展安装图:


完美的找到了它,只是它是英文版的,不过可以对照着2010的中文版操作,功能没有什么变化。
下面是自定义安装程序的操作方法:
安装项目主要有:左侧3个菜单(项目主要文件,用户桌面,用户开始菜单),一个需要配置的项目属性(系统必备安装环境)
1-添加项目主要文件:在项目文件右键->ADD->项目输出->选择winform项目-主输出,然后安装程序会自动把依赖的文件全部加进来,非常好使。最后别忘了关键的异步,把服务的config文件单独再拉进来:



2-添加用户桌面文件:一般我们会在用户桌面生成一个程序的入口文件的快捷方式,就是启动项目的文件。在项目文件中,选中winformEXE文件,右键创建快捷方式,然后拖到用户桌面左边的:用户桌面菜单中。
3-添加用户程序菜单也一样,放入一个入口文件的快捷方式文件,一般还有再加一个卸载该程序的文件入口:
首先,我们需要在项目文件中,Add一个微软提供可供卸载程序的一个程序集: C:\Windows\System32\msiexec.exe, 然后同样创建一个快捷方式,拖入到用户程序菜单中,右键快捷方式属性,在参数中输入:\x {projectcode}

其中projectCode,是需要在setup项目的属性中(不是右键属性哦,选中安装项目,属性窗口中的属性),可以找到,然后粘贴进去,就完成了卸载程序快捷方式的创建:

4-设置安装程序的运行环境及必备系统组件:选中setup安装项目,这次是右键点击属性添加系统必备组件,如下图:

最后编译setup项目,就可以了,找到Debug下的文件,就可以进行傻瓜式一键安装了,自定义安装文件一共就产生了2个文件,类似于安装包的作用,把我们的发布后的文件又进行了一次压缩,漂亮啊:

注意:默认自定义安装项目,是不编译的,除非你单独编译安装项目。 你如果你是编译的解决方案,那么你其实并没有编译安装项目,解决方案中可以设置安装项目编译:

5-添加快捷方式图标,图标需要在项目文件中添加几张ICO类型的图标文件,添加好之后,可以在快捷方式的属性栏的ICON中选择添加的图标文件。这一步可忽略,主要是为了美观!
效果图:
用户菜单快捷菜单入口:

桌面快捷方式入口:

总结:由于没有太多的时间整理,先这样写吧,基本上把我自己使用这个winform+window服务这种组合项目,在发布过程中以及,怎么创建自定义安装包来快速,部署到测试中,遇到的问题说全了,希望可以帮助到遇到类似问题的道友。。。
以后再整理文章的结构。。。
VS2017、VS2019没有Setup安装项目(Visual Studio Installer)_解决方案的更多相关文章
- 解决记录:win10 无法安装VS2017,visual studio installer下载进度始终为0
问题描述:win10 下无法安装VS2017,visual studio installer下载进度始终为0,点击取消按钮后,也没有反应,visual studio installer也关闭不掉: 具 ...
- Visual Studio Installer打包安装项目VS2015
使用VS2015的Visual Studio Installer打包安装项目,虽然整体操作很简单,但还是有几个特殊的点需要记一下,故写下此博客方便以后查阅 第一步,创建安装项目 如下: 里面最左侧的框 ...
- Visual Stdio 2015打包安装项目的方法(使用Visual Studio Installer)
首先在官网下载VS2015的Visual Studio Installer 1.创建安装项目 里面最左侧的框框有三个文件夹 1.“应用程序文件夹”即"Application Folder&q ...
- 解决 win10 无法安装VS2019,visual studio installer下载进度始终为0
解决 win10 无法安装VS2019,visual studio installer下载进度始终为0 目录 解决 win10 无法安装VS2019,visual studio installer下载 ...
- Visual Studio Installer打包后生成的安装文件每次执行都需要重新安装C++ 2010运行库(x86)的解决方案
原文:Visual Studio Installer打包后生成的安装文件每次执行都需要重新安装C++ 2010运行库(x86)的解决方案 如果你是用Visual Studio自带的打包项目打包了一个I ...
- Visual Studio 开发(一):安装配置Visual Studio Code
一.为何使用Visual Studio Code 在学习音视频开发的时候,使用到了C和C++,在回顾复习C和C++的知识的时候,需要编写一些代码来加强理解. 虽然,有在线的语言编辑工具https:// ...
- Windows10系统如何安装Microsoft Visual Studio 2015及最小子数组和求解
一.Windows10系统如何安装Microsoft Visual Studio 2015. 1.首先到Visual Studio官方网站(https://www.visualstudio.com/v ...
- .NET Framework 2.0/3.0/3.5 以 v90 平台工具集为目标。请确保在计算机上安装了 Visual Studio 2008
今天在Visual Studio2010下面开发C++应用的时候发现“.NET Framework 2.0/3.0/3.5 以 v90 平台工具集为目标.请确保在计算机上安装了 Visual Stud ...
- 在linux系统中安装VSCode(Visual Studio Code)
在linux系统中安装VSCode(Visual Studio Code) 1.从官网下载压缩包(话说下载下来解压就直接可以运行了咧,都不需要make) 访问Visual Studio Code官网 ...
随机推荐
- C++ 文件流的详解
部分内容转载:http://blog.csdn.net/kingstar158/article/details/6859379 感谢追求执着,原本想自己写,却发现了这么明白的文章. C++文件流操作是 ...
- 学生管理系统_排序后通过name删除列表里的字典
l = [{'name': 'wangfan', 'age': 18, 'sex': 'nan'}, {'name': 'wangerfan', 'age': 10, 'sex': 'nan'}, { ...
- SQL转化为MapReduce的过程
转载:http://www.cnblogs.com/yaojingang/p/5446310.html 在了解了MapReduce实现SQL基本操作之后,我们来看看Hive是如何将SQL转化为MapR ...
- 13.git的简单使用
安装 https://git-scm.com/downloads 一直点下一步就可以,安装完后打开方法:‘开始菜单’-->'Git'-->''Git Bash 安装完成后设置名字和电子邮件 ...
- Flask入门之开发简单登陆界面
涉及知识点: render_template() redirect():注意def的函数不要使用这个Python关键字 url_for():可以传参数给动态路由 动态路由 # Sample.py fr ...
- Selenium2Lib库之鼠标事件常用关键字实战
1.2 鼠标事件常用关键字 1.2.1 Click Button关键字按F5 查看Click Button关键字的说明,如下图: Click Button关键字 是用于点击页面上的按钮.参数locat ...
- 【NumberValidators】大陆身份证验证
需要说明的是这里的大陆身份证识别并不是公安局联网的识别,而是按国标GB 11643进行的验证,所以其验证结果只能说符合国标规范,但不能保证该身份证一定真实存在,如果你实际需求是希望身份证一定真实存在, ...
- SpringMVC中参数绑定
SpringMVC中请求参数的接收主要有两种方式, 一种是基于HttpServletRequest对象获取, 另外一种是通过Controller中的形参获取 一 通过HttpServletReque ...
- 定时器Timer的使用
概述 Timer类的主要作用是设置计划任务,但封装任务的类却是TimerTask类.执行计划任务的代码要放入TimerTask的子类中,因为TimerTask是一个抽象类. 方法schedule(ta ...
- CSS选择器详细总结
一.基本选择器 序号 选择器 含义 1. * 通用元素选择器,匹配任何元素 2. E 标签选择器,匹配所有使用E标签的元素 3. .info class选择器,匹配所有class属性中包含info的元 ...