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

国内的网络环境,真的是有很大的不同,有的人装 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. python爬虫实例

    import re import requests from bs4 import BeautifulSoup # 主方法 def main(): # 给请求指定一个请求头来模拟chrome浏览器 h ...

  2. pp 总结一

    1.JQ $.get() <!DOCTYPE html> <html lang="en"> <head> <meta charset=&q ...

  3. python之集合set

    1.测试 # python2和python3方法列表相同 ops23 = ['add', 'clear', 'copy', 'difference', 'difference_update', 'di ...

  4. ASP.NET machineKey的作用和使用方法

    ASP.NET machineKey的作用 如果你的Asp.Net程序执行时碰到这种错误:“验证视图状态 MAC 失败.如果此应用程序由网络场或群集承载,请确保 <machineKey> ...

  5. 【AtCoder】AGC016

    A - Shrinking 用每个字母模拟一下就行 #include <bits/stdc++.h> #define fi first #define se second #define ...

  6. Codeforces 660F Bear and Bowling 4 斜率优化 (看题解)

    Bear and Bowling 4 这也能斜率优化... max[ i ] = a[ i ] - a[ j ] - j * (sum[ i ] - sum[ j ])然后就能斜率优化啦, 我咋没想到 ...

  7. Hive| DDL| DML

    类型转换 可以使用CAST操作显示进行数据类型转换 例如CAST(' 转换成整数1:如果强制类型转换失败,如执行CAST('X' AS INT),表达式返回空值 NULL. : jdbc:hive2: ...

  8. mybatis sql注入

    这是${}与#{}的区别,#{}采用了预编译,在SQL执行前,会先将上面的SQL发送给数据库进行编译:执行时,直接使用编译好的SQL,替换占位符“?”就可以了.因为SQL注入只能对编译过程起作用,所以 ...

  9. Centos7服务器中安装MySQL(选择一个你想要的版本)

    开始,我默认安装了MySQL8,但是在测试的时候发现通过Hibernate连接之前的MySQL5.7的代码运行在连接新版本的库的时候发生异常,出于时间原因没有深度排查 但是我严重怀疑是版本匹配问题,为 ...

  10. RFC2616-HTTP1.1-Methods(方法规定部分—单词注释版)

    part of Hypertext Transfer Protocol -- HTTP/1.1RFC 2616 Fielding, et al. 9 Method Definitions The se ...