自从装了长城带宽,我的肠子就变成青色的了。

国内的网络环境,真的是有很大的不同,有的人装 VS 的时候,号称满速,有的人(其实就是我)要等它下载很久,还告诉我有个组件没有安装成功。很久很久以前,VS 是提供 ISO 版的离线安装包的。那个时候,最幸福的事就是,把 ISO 文件链接拉到迅雷里,然后选y离线下载,之后就可以全速下载完整个安装镜像了。但随着 VS 越来越大,这样的做法已经变得不再“科学”了。VS 开始提供一个在线的安装器。但奇怪的是,在现在 CLI 程序变得越来越“啰嗦”的时代,GUI 程序确越来越少的提供有用的信息。比如下载的速度,正在下载的文件名,文件的大小,下载的进度等等,统统没有。只能看到一个玄学般的安装进度在那里,一动不动,像是死了一样。然后又 biu 的一下,就完成了。这种体验真是神奇啊!

不过,其实 VS 还是有提供贴心的离线下载功能,当然,本质上是为了大中型企业提高效率,只是我等 community 用户顺便沾光而已。虽然官方有详细的文档,我就在这里再啰嗦一遍:

第一步:创建 offline 文件存放的位置

找一个空闲空间比较大的盘,大概需要 30G 左右的空间(完全下载,包括了几个模拟器)。30G 对于现在以 TB 记的硬盘来说,只是一部高清蓝光电影的空间,而 VS 是宇宙第一的 IDE,已经很值了吧。创建一个文件夹,比如叫 vs2017

第二步:创建下载脚本

下载 VS2017 的在线安装程序。放到刚才创建好的文件夹里。然后创建一个 cmd 文件:

vs_community.exe --layout D:\vs2017\offline

程序员都能理解这个。如果有什么错误,说明你是小白,请留言。

这个简单的脚本会下载所有的安装包。如果你不想下载所有的,可以自己选择要下载的:

vs_community.exe --layout D:\vs2017\offline --add Microsoft.VisualStudio.Workload.Azure Microsoft.VisualStudio.Workload.ManagedDesktop Component.GitHub.VisualStudio

察看包的列表请点击这里

第三步:运行脚本,然后等待

这一步的时间视每个人的网络而定。如果你网速不快,可以去干点正经事了。

第四步:安装证书

下载完成之后,别急着安装。我想这个离线包可能是用了什么本地的 Web Server,而又需要 https,所以你得先把几个证书装上,位置在 vs2017\offline\certificates。不要偷懒,要都装。双击就可以安装。如果双击不行,就右键选择安装。

第五步:安装

下面才开始正式的安装。要注意的是,不要运行你下载的那个 installer,要运行 vs2017\offline\vs_community.exe 这个 installer。顺带提示一下,要用右边的滚动条,不要用鼠标的滚轮。不然鼠标会坏的。剩下的就是选你需要的组件进行安装了。

结语

离线安装有一个大好处,就是避免了选择困难症。以往因为要下载这么多安装包,所以我都会“精挑细选”每一个组件,以保证安装完成之后,正好可以满足现在的工作,还能有一些可以探索的东西。结果就是总是会装很多。而这次因为所有的安装包都已经下载了,什么时候想装什么,只需要去运行离线安装程序,就可以随时安装想研究的功能,而不用再等待很长的下载时间了。

另外,那个下载离线包的脚本不要删,可以隔三岔五的运行一下,更新一下离线安装。

安装 VS2017 的正确姿势的更多相关文章

  1. 在Linux(ubuntu server)上面安装NodeJS的正确姿势

    上一篇文章,我介绍了 在Windows中安装NodeJS的正确姿势,这一篇,我们继续来看一下在Linux上面安装和配置NodeJS. 为了保持一致,这里也列举三个方法 第一个方法:通过官网下载安装 h ...

  2. 在Windows中安装NodeJS的正确姿势

    NodeJS已经非常流行了,而且可以预见他将继续受到追捧.这确实是一个不错的创举,想想看他现在能做什么吧 1.服务器程序(典型的就是用来做网站或者restful服务,主打就是多线程,非阻塞,最后,一个 ...

  3. 安装 Anaconda 的正确姿势

    下面以 Anaconda2 安装为例, 说明如何更加流畅的使用 Conda Install Anaconda2 安装 Anaconda2(从清华源下载比较快) wget https://mirrors ...

  4. 阿里云centos7使用yum安装mysql的正确姿势

    yum快速安装mysql 新增yum源 rpm -Uvh http://dev.mysql.com/get/mysql-community-release-el7-5.noarch.rpm 查看可用的 ...

  5. centos7安装redis的正确姿势

    目前redis5已经发布,Redis 5 是 Redis 引入流数据类型(Stream data type)的第一个版本.按照官方的说法,不使用该特性的用户在生产环境中使用 Redis 5 会有更好的 ...

  6. windows安装redis的正确姿势

    安装: 1,redis官方下载地址:https://redis.io/download,redis 64位下载地址:https://github.com/ServiceStack/redis-wind ...

  7. centos7 安装mysql的正确姿势

    1. 添加MySQL Yum源 MySQL官网>DOWNLOADS>MySQL Yum Repository找到合适版本的yum源 $wget https://dev.mysql.com/ ...

  8. ubuntu 安装 mysql 的正确姿势

    1.下载官方提供的mysql-apt-config.deb包进行APT源设置,下载地址:https://dev.mysql.com/downloads/repo/apt/ 2. // 将 mysql- ...

  9. 安装luasocket 的正确姿势

    在lua中用下面这种方式使用socket,安装luasocket-2.0.2后老是报一些莫名其妙的错误. require("socket") 下面是部分报错信息 lua: erro ...

随机推荐

  1. [转] 一张图理解prototype、proto和constructor的三角关系

    前面的话 javascript里的关系又多又乱.作用域链是一种单向的链式关系,还算简单清晰:this机制的调用关系,稍微有些复杂:而关于原型,则是prototype.proto和constructor ...

  2. [转] 组件库按需加载 借助babel-plugin-import实现

    前段时间一直在基于webpack进行前端资源包的瘦身.在项目中基于路由进行代码分离,http://www.cnblogs.com/legu/p/7251562.html.对于公司内部的组件库,所有内容 ...

  3. javaScript事件(八)事件类型之变动事件

    DOM2级的变动(mutation)事件能在DOM中某一部分发送变化时给出提示.变动事件为XML或HTML DOM设计的,并不特定于某种语言.DOM2级定义了如下变动事件. DOMSubtreeMod ...

  4. CTAP: Complementary Temporal Action Proposal Generation (ECCV2018)

    互补时域动作提名生成 这里的互补是指actionness score grouping 和 sliding window ranking这两种方法提proposal的结合,这两种方法各有利弊,形成互补 ...

  5. python全栈开发day85-查:数据表 数据头 增加列 展示多对多字段 反向解析编辑和删除按钮的url

    直接上代码: # spark/service/sites.py from django.conf.urls import url from django.shortcuts import HttpRe ...

  6. selenium WebDriver 对浏览器标签页的切换

    关于selenium WebDriver 对浏览器标签页的切换,现在的市面上最新的浏览器,当点击一个链接打开一个新的页面都是在浏览器中打开一个标签页,而selenium只能对窗口进行切换的方法,只能操 ...

  7. Python3 序列解包

    转载自:https://blog.csdn.net/yilovexing/article/details/80576788 序列解包是 Python 3.0 之后才有的语法 什么是序列解包呢?先看一个 ...

  8. Python isinstance 方法 判断 built-in types(内置类型)技巧

    Python isinstance 方法 判断 built-in types(内置类型)技巧 d = {} isinstance(d, type({})) isinstance(d, dict) l ...

  9. 基于jest和puppeteer的前端自动化测试实战

    前端测试现状 经常听到后端同学说“单元测试”,前端写过测试用例的有多少?答案是:并不多,为什么呢?两个主要原因 1.前端属于GUI软件,浏览器众多,兼容问题让人头大,用户量有一定规模的浏览器包括: I ...

  10. maven 构建spring boot + mysql 的基础项目

    一.maven 依赖 <parent> <groupId>org.springframework.boot</groupId> <artifactId> ...