Visual Studio 2017下载安装教程与离线布局排错指南 📅 发布时间:2026/9/18 14:16:43 👁 浏览次数: 先说一个可能让不少人意外的结论Visual Studio 2017 到了今天远远没有被淘汰。上个月帮朋友复现一个 2013 年前后写的 .NET Framework 项目代码本身能编译但用新版本 IDE 打开后第三方控件库的引用路径、项目文件的工具集版本、甚至部分 C 工程的平台工具集都对不上报错一路飘红。折腾半天最后是老老实实装回 Visual Studio 2017 才把整个链路跑通。这种情况在维护老系统、接手上任开发者留下的代码、给学校课程做实验环境、或者跑一些只兼容旧 SDK 的 Unity 工程时几乎天天遇到。所以这篇内容就是围绕Visual Studio 2017 下载地址和安装教程展开把下载渠道的选择、安装向导里每一个需要勾选的页面、路径规划、以及装完之后最容易踩的几个坑完整地讲一遍。文中不涉及任何非常规的获取方式全部走正常渠道。不管你是第一次装 IDE 的新手还是只想快速搭一套遗留项目环境的老手都能照着走完。1. 先把定位搞清楚什么情况下还值得装 Visual Studio 2017动手下载之前我建议先花两分钟想清楚一件事你到底为什么要装 2017而不是 2022。这一步想不清楚后面很可能白装一遍。1.1 三类真正需要它的场景第一类是遗留项目维护。很多企业的内部系统、工控上位机软件、老版校园管理系统都是 .NET Framework 4.0 到 4.6 时代写出来的。项目文件里写死了ToolsVersion引用的第三方 DLL 依赖特定版本的 MSBuild 行为某些 WinForms 设计器在新 IDE 里的渲染逻辑也变了。你用新版打开可能连窗体设计器都加载不出来。这种情况下装回 2017 是最省事的方案而不是花几天时间去改项目文件。第二类是教学和考证环境。不少学校的实验指导书、培训机构的课件、以及一些厂商的认证考试环境要求就是某个固定大版本。跟着课件走能少踩很多坑环境不一致带来的问题往往会被误判成代码写错了白白浪费时间。第三类是 SDK 与工具链的硬约束。比如某类设备厂商的驱动开发包只提供 VS2017 的集成插件只支持到 VS2017 的向导版本又比如一些老版本的 Unity官方文档明确写着推荐用 VS2017 作为外部脚本编辑器。这类情况下你不是在选 IDE你是在满足上游工具的要求。提示如果你的项目本身是新建的、没有历史包袱那没什么好犹豫的直接上当前主流版本。装 2017 只应该发生在被历史代码或上游工具绑住的前提下。1.2 和 VS2022、VS Code 的横向取舍经常看到有人把这几样东西混为一谈我在这里一次说清楚避免你选错工具白折腾。工具定位适合的场景不适合的场景Visual Studio 2017Community/Professional/Enterprise完整功能 IDEWindows 平台为主.NET Framework 遗留项目、C 桌面、UWP、老版 Xamarin只写前端脚本、轻量改配置Visual Studio 2022同上新一代新项目、.NET 6/8、现代 C严格锁定旧工具集的遗留工程VS Code轻量编辑器加插件生态前端、脚本、跨语言快速编辑、远程开发需要可视化设计器、复杂调试的大型工程一句话概括VS Code 是编辑器加插件Visual Studio 是工程化 IDE 加编译器加调试器加设计器。装 VS Code 再装一堆插件去凑一个 WinForms 设计器是典型的用错工具。1.3 三个版本Community/Professional/Enterprise怎么选Visual Studio 2017 的官方分发有三个主要版本功能是层层叠加的Community社区版面向个人开发者、学生、开源项目参与者功能上已经包含了绝大部分日常开发需要的内容包括完整的调试器、代码分析、单元测试和 Git 集成。个人使用选它就行。Professional专业版在社区版基础上增加了面向团队协作的部分能力通常通过订阅获得。Enterprise企业版包含更完整的代码质量分析、架构验证、IntelliTrace 全时段调试等能力同样是订阅制。社区版的功能边界在个人使用场景下基本够用而且它是正正经经的免费版本不是试用版。安装向导里选版本这一步是可以随时反悔的——后面装了想升级用安装程序改一下就行不用重装整个环境。注意不要在非官方渠道下载所谓的免安装版绿色版这类打包版本通常会剥离安装程序的组件注册过程导致后续想增删工作负载时直接报错而且来源无法验证。IDE 这种东西装的是编译器和调试器来源必须干净。2. 下载引导程序、离线布局包该怎么挑下载这一步看着简单其实是整篇安装教程里最影响后续体验的决策点。选错了后面可能要反复下载好几遍。2.1 从官方页面找到 2017 的归档入口Visual Studio 2017 早已过了官方支持周期官方支持在 2023 年就已经结束所以它不在下载页最显眼的位置而是被收纳进了旧版本下载区域。正常路径是进入 Visual Studio 官方站点的下载页面在页面下方或侧边找到以前的版本老版本这一类入口进去之后就能看到 2017 的分支再往下按版本号细分到具体的更新版本。这里有个细节值得说2017 有非常多的更新版本从最初的 15.0 一路到后期的 15.9.x。同一个大版本内的更新是累积的直接用该分支里最新的那个更新版本即可不要去找 15.0 的初版那里面的一些工具链问题在后续更新里已经修掉了。2.2 引导程序 vs 离线布局一动一静两条路官方在 2017 这一代提供了两种下载形态很多人分不清区别。引导程序是一个几 MB 的小体积可执行文件比如vs_community.exe它本身不含任何组件运行时再去服务器上按需拉取。优点是体积小、随时能拿到最新组件缺点是把整台机器的网络状况押在了安装过程上一旦中途网络抖动就可能卡住或者失败。**离线布局Layout**是用引导程序加命令行参数把指定工作负载的全部安装包提前下载到本地某个目录。之后安装时直接从本地方向取包全程不需要联网。缺点是要占几个 GB 到几十 GB 的磁盘而且下载一次要等挺久。ISO 镜像是第三条路。2017 这一代官方确实提供过 ISO 形式的安装介质适合完全断网的环境。但要注意ISO 里通常只包含核心组件如果你需要某些特定的工作负载或者更新的工具集还是要联网补齐或者用离线布局的方式补下载。所以 ISO 更适合先把最小环境装上细节后面慢慢补的场景。三种方式怎么选可以直接对号入座场景推荐方式理由自己的开发机网络顺畅引导程序在线安装体积小能拿到最新组件内网机器、多人共用环境离线布局装一次后续所有机器复用完全离线、需要快速铺开ISO 加离线布局补齐ISO 起底缺失部分单独补需要固定版本做长期维护离线布局加归档保存版本可控不怕以后下载源变化2.3 用命令行拉一份完整离线布局离线布局的做法是在命令行里调引导程序指定下载目录、语言和需要的工作负载。举个实际例子假设要把 .NET 桌面开发和 ASP.NET Web 开发两个方向拉到 D 盘的布局目录vs_community.exe --layout D:\VS2017Layout --lang zh-CN --add Microsoft.VisualStudio.Workload.ManagedDesktop --add Microsoft.VisualStudio.Workload.NetWeb --includeRecommended参数的含义逐个拆一下参数作用经验值--layout 目录指定布局包落地目录放在非系统盘留足 30GB 以上--lang指定语言包zh-CN中文界面多人环境建议加en-US--add添加工作负载或单个组件 ID按需添加ID 要写完整--includeRecommended同时拉取该负载的推荐组件强烈建议加否则装完少东西--includeOptional连可选组件一起拉会让体积明显变大按需--all拉取全部工作负载体积非常大一般不建议几个容易忽略的点。第一--lang可以重复指定多个写法是--lang zh-CN en-US这样布局包里会同时带中英文资源切换界面语言时不用再联网。第二--includeRecommended这句一定要加不加的话某些负载的核心组件不会被拉下来安装时会提示缺少包还得再跑一遍。第三布局目录不要放在中文路径或者带空格的路径下个别情况下命令行解析会出问题用D:\VS2017Layout这种纯英文短路径最省心。如果只是想拉所有工作负载的推荐组件可以用--allWorkloads --includeRecommended这个组合比--all温和一些体积也可控得多。2.4 下载完怎么验证文件没坏下载动辄几个 GB中途出错是最常见的情况之一。验证方法有两层。第一层是看体积和文件数是否合理。布局目录下载完之后里面应该有一个引导程序副本、一个packages目录装着所有实际安装包、一个certificates目录装着签名证书。如果packages里的文件数明显偏少或者有多个 0 字节文件那就是没下完重跑一次下载命令即可引导程序本身支持断点续传不会从头再来。第二层是算哈希。如果你下载的是 ISO 镜像官方会在页面或者配套文件里给出对应的哈希值用系统自带的命令就能算certutil -hashfile D:\VS2017.iso SHA256把输出的字符串和官方公布的值对着看一致就说明文件在传输过程中没有损坏。这一步在处理大文件时真的别省我见过一次因为镜像下载不完整安装到 80% 报包损坏然后重新下载前后浪费了两个多小时。3. 装之前的环境自查几件小事能省掉一半返工安装 Visual Studio 2017 出问题的案例里相当一部分根本不是安装程序的问题而是环境本身没准备好。这几项在点安装之前花五分钟检查一下性价比很高。3.1 操作系统与硬件的硬门槛2017 这一代对系统的要求比现在的新版本宽松得多这也是它在老机器上还能用的原因。大致门槛是这样的项目最低要求实际建议操作系统Windows 7 SP1 / 8.1 / 10 / Server 2012 R2 及以上Windows 10 64 位最省心处理器1.8 GHz 及以上双核起步四核以上编译体验差距明显内存2 GB8 GB 起步16 GB 才谈得上顺畅磁盘空间视组件而定最大可达上百 GB系统盘留 30 GB 以上组件另放显卡支持 1280×720 分辨率1080P多显示器更舒服如果你打算在虚拟机上装内存至少给到 8 GB处理器核心给到 2 个以上并且开启虚拟化支持。我在 4 GB 内存的虚拟机上装过一次光是安装过程就比正常机器慢了三倍装完之后打开一个中等规模的解决方案要等好几分钟体验很差。还有一个特别容易被忽略的点Windows 7 环境需要先装好相关的系统更新补丁。老系统上缺少某些加密协议相关的更新时安装程序连接下载服务器会直接失败报出一堆看不懂的错误码。如果你必须用 Windows 7先把系统更新打到比较新的状态再动手。3.2 三个路径的规划程序、缓存、共享组件Visual Studio 2017 相比更早的版本最大的改进之一就是允许自定义安装位置了。它把磁盘占用分成三块理解这三块的分工能帮你省下系统盘的空间。安装目录IDE 主体比如默认会落在Program Files (x86)下的对应版本目录里。这是程序本体不建议乱动但要占 10 GB 以上。下载缓存目录安装过程中拉下来的原始安装包会留在这里默认在系统盘的ProgramData下。它的体积往往和安装目录差不多是系统盘空间被吃掉的元凶。共享组件目录一些被多个版本共用的运行库、构建工具会放在这里装机时如果机器上已经有别的 Visual Studio 版本它会自动复用。我的实际做法是系统盘只留给安装目录缓存目录和共享组件目录全部指到数据盘。这样系统盘占用可控以后要清理缓存也方便直接整个目录删掉就行不影响 IDE 运行。唯一的代价是要提前在数据盘上建好空目录安装向导里路径选择那一页要手动改。注意路径一旦确定安装完成后虽然可以通过安装程序改但过程比较慢而且有失败风险。所以这一步最好一次规划到位别装到一半再改。3.3 安装前必须处理掉的软件与设置有几类东西会直接干扰安装过程装之前先处理掉。杀毒软件的实时防护。这个是最常见的原因。VS 安装过程会往磁盘写入几万个文件实时扫描会把这些写入拖慢好几倍更严重的是可能把某些安装包当成可疑文件锁住导致某个包安装失败。建议安装期间临时关掉实时防护装完再打开。这个操作只是临时关闭装完记得恢复。正在运行的其他安装程序。Windows 的安装服务同一时间只能处理一个如果后台有 Windows Update 正在装补丁或者有其他 MSI 安装任务在跑VS 安装程序会直接卡住并提示等待。装之前看一眼任务管理器把系统更新等一等。占用系统盘的大量临时文件。安装过程会在临时目录里解压大量文件如果系统盘空间本来就很紧张建议先清理一下临时目录。这个操作很安全临时文件本来就是用完即弃的。已经装过的旧版本残留。如果之前装过同版本但卸载不干净安装程序可能会误判为已安装。这种情况先打开安装程序确认列表里没有残留条目再开始。4. 图解安装全过程每一步该看什么、该勾什么准备工作做完正式进入安装环节。下面按安装向导的页面顺序走一遍把每一步的界面特征和该做的选择都说清楚。4.1 启动引导程序到工作负载页双击下载好的引导程序最先看到的是一个深色背景的启动界面中间是产品名称和版本信息。这个界面会短暂停留它在做的是检查系统环境、准备安装引擎。这一步卡住是很常见的现象尤其是第一次运行时它会去下载安装引擎自身网络不好就会停在这里很久。如果超过十几分钟没有任何变化再去排查网络或者改用离线布局。引擎准备好之后界面会跳到一个带几个标签页的窗口。2017 的安装向导是竖排标签的形式从上到下依次是工作负载单个组件语言包安装位置。工作负载页是默认打开的第一个页面也是最关键的页面。这个页面的设计逻辑是按开发方向打包它把需要一起装的组件预先组合成一个组你勾一个方向它就帮你把编译器、SDK、模板、调试支持一起装上。这种方式比早期版本那种长长的复选框列表友好太多了但也带来一个问题——默认勾选项会占很大空间需要你根据实际情况做减法。4.2 工作负载按职业方向勾选的三套组合工作负载列表里有十几个类目全勾上能占掉一百多 GB。我按常见的三排职业方向给出三套组合你可以直接照着选。组合一.NET 桌面与后端开发最常见勾选.NET 桌面开发和ASP.NET 和 Web 开发两项。这两项覆盖了 WinForms、WPF、控制台程序以及 Web API、MVC 这一整套技术栈。对于大多数做企业级应用的场景这两个就够了。注意 Web 开发那一项默认会带上 IIS Express 和数据库相关的工具如果只是做后端接口开发这些是必要的。组合二C 与底层开发勾选使用 C 的桌面开发。它会带上 MSVC 编译器、Windows SDK、CMake 支持、以及调试工具。如果你要开发工控、驱动外围、算法模块这类内容这个是核心。特别提醒这一项历史版本里会同时带上多个版本的 Windows SDK如果你明确知道需要哪个版本可以在单个组件页里做精简。组合三跨平台与脚本辅助勾选Python 开发或者Node.js 开发。2017 对 Python 的支持已经相当完整了有虚拟环境管理、调试器、包管理界面。如果只是想用 IDE 的调试器来调 Python 项目这个组合比单独配环境省事很多。如果实在拿不准一个保守策略是先只勾你最确定要用的那一项装完再用安装程序补。增删工作负载不需要重新下载整个 IDE只是拉取新增组件比一次装错再卸载重来划算得多。4.3 单个组件、语言包与可选的取舍单个组件标签页是把工作负载拆开的最小单位里面按分类罗列了几百个条目。绝大多数情况下不需要手动改但有几个值得单独拎出来。NuGet 包管理器检查一下有没有被勾上这个是必需品没有它连第三方库都装不了。Git for Windows如果机器上没装 Git建议在这里一起装上省得后面单独配置。各个版本的 .NET Framework 目标包如果你要开发和旧版框架匹配的程序注意把对应的目标包勾上。目标包不全新建项目时下拉框里找不到对应的框架版本。MSBuild 与编译器工具集C 项目尤其要注意多个工具集版本可以共存老项目往往需要指定旧的工具集。语言包页面很简单默认会勾当前系统语言。我的建议是同时勾上中文和英文。原因有两个一是遇到报错时用英文关键词去搜索能命中的资料多得多二是部分第三方扩展的中文界面翻译得很别扭切回英文反而看得懂。语言包是可以在 IDE 里随时切换的不用重装。4.4 安装位置页三个路径的具体填法这个页面就是前面提到的三块磁盘规划落地的地方。三个输入框分别是安装目录、下载缓存目录、共享组件目录。我的填法是安装目录 C:\Program Files (x86)\Microsoft Visual Studio\2017\Community 下载缓存目录 D:\VS2017Cache 共享组件目录 D:\VS2017Shared需要注意的是安装目录和共享组件目录必须放在同一个盘符否则安装程序会直接给一个警告。这是因为安装程序需要在两者之间建立硬链接来复用文件跨盘符做不到。所以如果你的系统盘空间实在紧张就整体挪到数据盘但保持一致。提示填完之后看一下页面下方给出的需要的磁盘空间估算值。它会随着你在前几个页面勾选内容的变化实时更新。如果这个数字超过了你目标分区的可用空间别抱侥幸心理回去减工作负载。4.5 安装进度条背后的动作与重启点下安装之后会进入一个长时间的进度页面。进度条分为若干阶段每个阶段下面有小字提示当前在做什么比如正在应用正在安装组件正在配置。这个过程可能持续二十分钟到两个小时取决于你勾了多少东西和磁盘速度。几点经验。进度条长时间停在同一百分比是正常现象尤其是在安装大体积组件时它可能在解压或者注册。判断是否真的卡死看的不只是进度条还要看任务管理器里安装进程的磁盘读写和 CPU 占用只要有活动就是在干活。不要在这个阶段手动结束进程中断安装留下的半成品状态清理起来很麻烦。另外安装过程中如果提示需要重启那通常是它在装运行库或者更新系统组件。可以按提示重启重启后安装程序一般会自动继续。5. 首次启动与基础配置让 IDE 立刻顺手安装完成后的首次启动有几个步骤值得认真做一遍能把以后的使用体验拉开差距。5.1 登录、主题、字体与起始页第一次启动会走一个初始化向导让你选开发设置和配色主题。开发设置那个下拉框里有常规Visual C#Visual CWeb 开发等选项它决定的是默认的快捷键方案和窗口布局。这一项后续可以改所以不用纠结选一个和你主用语言最接近的即可。接着会提示登录 Microsoft 账号。社区版同样需要登录才能长期使用登录之后会自动完成授权。这一步建议直接登录跳过的话每次启动都会有提示比较烦。主题方面深色和浅色完全看个人习惯没有优劣。但我强烈建议在这个环节就把字体调好默认的 Consolas 配上 10 号字在高分辨率屏幕上偏小眼睛容易累。换成等宽字体加 12 号以上再打开使用连字选项长时间看代码舒服很多。5.2 新建项目跑通第一条编译链路装完之后第一件正事是新建一个最小项目把编写—编译—运行—调试这条链路完整走一遍。这一步的目的不是写代码而是验证工具链是否完整。具体做法新建项目选控制台应用框架选 .NET Framework 4.6 或者你实际需要的版本生成位置建议放在一个纯英文路径下。然后在主函数里加一行输出按 F5 运行。如果能看到控制台窗口弹出并打印结果说明编译器、运行时、调试器三者都是通的。这个验证很有必要因为安装过程中如果某个组件包悄悄失败了安装程序在最后可能只给一个笼统的提示你当时未必注意到。等到真正开始写项目时才报错排查成本高得多。再补一个 C 的验证方式新建一个空的 C 控制台项目写个最简单的输出语句按 F7 编译。如果编译报找不到 Windows SDK之类的错误说明 SDK 组件没装上回安装程序补一下即可。5.3 快捷键速查与Start Experimental Instance到底是什么装完之后开始菜单里会比预期多出好几个快捷方式其中一个名字很特别叫Start Experimental Instance of Visual Studio 2017。很多人第一次看到都会疑惑这是不是装错了。它其实是一个专门给扩展开发者用的独立实例。启动它之后IDE 会用一个单独的配置分支运行注册表配置、设置文件、扩展列表全都是独立的不会污染你日常使用的那个主实例。它的作用是让扩展开发者在调试自己写的插件时不用把主环境搞乱——比如你正在开发一个自定义编辑器需要频繁重载用实验实例就完全不用担心。副作用是首次启动这个实例会比较慢因为它要从零初始化一套配置。如果你不做扩展开发这个快捷方式可以放着不管它不影响正常使用。真觉得碍眼删掉快捷方式本身也不会破坏任何东西。日常开发中用得最多的快捷键我整理了一份自己高频使用的快捷键作用使用频率CtrlK, CtrlD格式化当前文档代码极高CtrlK, CtrlC注释选中行极高CtrlK, CtrlU取消注释极高F5/CtrlF5调试运行 / 不调试运行极高CtrlShiftB生成解决方案高Ctrl,打开设置页高CtrlQ全局搜索功能高CtrlT跳转到文件或类型高F12转到定义极高CtrlShiftF在整个解决方案中查找中CtrlK, CtrlD这个组合值得单独说一句它是两个连续按键先按CtrlK松开再按CtrlD。很多新手按不出来就是因为两个键一起按了。5.4 NuGet 源与扩展管理NuGet 是 .NET 生态的包管理器Visual Studio 里内置了图形界面。默认的官方源在国内访问有时会比较慢如果遇到还原包超时可以加一个国内的公开镜像源速度会明显改善。具体做法是在工具—选项—NuGet 包管理器—程序包源里添加一个新的源地址指向公开的镜像服务然后在还原包时优先使用它。这里不建议直接删掉官方源因为镜像同步有延迟最新的包可能还没有。扩展管理方面VS2017 的扩展和更新入口可以浏览、安装、禁用扩展。几条经验不要一次装太多扩展每个扩展都会拖慢启动速度尤其是那些挂到编辑器事件上的扩展装之前看一下版本兼容性标注给更高版本 IDE 做的扩展在 2017 上可能加载失败失败后 IDE 启动会变慢遇到启动异常时可以用安全模式启动命令行加/SafeMode参数它会跳过所有扩展加载用来判断是不是扩展引起的。6. 安装失败的完整排查链路从卡住到报错代码这一节是这篇文章最实用的部分。安装 Visual Studio 出问题的形式就那么几种但每一种背后对应的原因不同盲目重试只会浪费时间。下面按症状到原因的顺序把排查链路完整走一遍。6.1 卡在正在准备或进度长时间不动症状安装程序启动后停在初始界面或者进度条卡在某个百分比很久没有任何移动。第一步要区分是真卡还是慢。打开任务管理器观察安装程序进程的 CPU 和磁盘活动。如果磁盘读写一直有波动说明它在解压或写入文件属于正常慢耐心等。如果 CPU 接近 0 且磁盘活动为零持续十分钟以上那基本可以判定是卡住了。真卡住之后的处理顺序先结束安装程序进程然后清理临时目录和安装引擎的缓存目录。安装引擎会在系统盘的临时目录和程序数据目录下留下一些半成品文件这些文件如果损坏会导致每次重启安装程序都在同一个地方卡住。把相关目录清空后再重新运行安装程序多数情况下能解决。如果清理后仍然卡在同一个位置改用离线布局的方式安装。在线安装卡住很多时候是下载环节的问题而离线布局已经把包都拉到本地了能绕开这个环节。这也是我在内网环境里一律推荐离线布局的原因。还有一个不太常见但确实存在的原因系统盘剩余空间在安装过程中不够了。安装程序会先解压到临时目录再复制到目标目录峰值占用可能比最终体积大一截。如果你系统盘只剩几个 GB就会出现装到一半卡死的情况。这种情况只能清理空间后重来。6.2 报错代码的分类与对应处理安装过程中弹窗给错误码的时候最容易被代码两个字吓到。其实这些码大致分三类归类之后处理思路就很清晰了。错误类型典型表现大致原因处理方向安装服务类提示另一个安装正在进行系统安装服务被占用等待其他安装结束重启后再试包安装失败类某个具体组件安装失败单个包损坏或被拦截清理缓存后单独重装该组件网络连接类提示连接超时、下载失败下载链路不通换离线布局或换网络环境证书与系统组件类提示证书链、加密协议相关系统缺少必要更新把系统更新补齐后重试安装服务类是最好处理的一种。Windows 同一时间只允许一个 MSI 任务后台有系统更新或者其他安装程序在跑VS 就会等待。处理方式就是等、或者重启机器后再装。包安装失败类需要看具体是哪个包。提示里通常会带上组件名字。处理方式是打开安装程序找到那个组件先取消勾选把其他内容装完然后再单独把它勾上重装。这个先跳过再补装的思路在处理个别顽固包时非常有效。网络连接类信号最明确就是下载不动。在在线安装模式下这个错误基本无解除非你的网络环境本身没问题。这时候离线布局是唯一稳妥的方案。证书与系统组件类出现在老系统上比较多。老版本的 Windows 缺少某些加密协议的更新导致连接服务器时握手失败。处理方向是把系统更新打到较新的状态尤其是与加密、根证书相关的更新。这里我不展开具体补丁编号因为补丁编号随系统版本变化最省事的做法是直接开启系统更新让它自己补齐。提示安装程序在最后会生成一份日志里面记录了每个组件的安装结果。看不懂错误码的时候直接看日志里最后一个失败的组件名字然后针对这个名字去处理比对着错误码猜要高效得多。6.3 装完启动异常闪退、报缺少组件、许可证提示安装顺利完成不代表能正常启动这几种情况也挺常见。启动闪退第一反应应该是怀疑扩展。用命令行加/SafeMode参数启动 IDE如果安全模式下能正常打开那就确定是某个扩展的问题。接着在安全模式下进扩展管理把最近装的扩展禁用掉一个个试很快能定位。提示缺少某个组件一般是安装过程中有包静默失败了而安装程序最后只给了一个汇总提示。处理方式是打开安装程序点修改它会自动检测缺失的组件并提示补装。许可证提示最常见的原因是没登录账号或者登录的账号没有对应的授权。社区版登录个人账号后即可正常使用。如果是在公司的共享机器上需要注意账号策略问题这个得问管理员。设计器加载不出来这在打开老项目时特别常见。多半是因为项目目标框架的版本和当前安装的目标包不匹配。回安装程序把对应版本的目标包勾上即可。6.4 卸载不干净怎么办有时候装坏了要重来但卸载之后重启安装程序发现它还认为环境里已经有这个版本。这种情况通常是卸载时残留了安装状态标记。处理顺序是先用安装程序自身的卸载功能卸载不要手动去删目录。手动删目录会破坏安装程序的记录导致后面既装不上也卸不掉。如果安装程序本身已经损坏打不开那就需要走官方的修复或清理工具这类工具能重置安装状态记录。强烈不建议手动删注册表项来处理这类问题。安装程序记录了大量的组件引用关系手删很容易造成后续安装出现更奇怪的问题。宁可多花二十分钟用正规流程清一遍也不要图快。7. 后续维护组件增删、缓存瘦身与多版本共存装完之后的日子还长这一节讲的是长期使用中会遇到的几个维护问题。7.1 想加工作负载时不要重新下载安装包这是新手最容易犯的错误想加一个功能就去把安装包重新下载一遍然后重新装。完全没必要。正确做法是打开Visual Studio Installer这个独立程序开始菜单里能搜到和 IDE 是两个东西在已安装的版本上点修改然后在打开的界面里勾选需要新增的工作负载或者单个组件点确认。它会只下载新增部分的组件通常几百兆到几个 GB比全量重装快得多。同样的思路也适用于移除。想减负的时候点修改把不用的工作负载取消勾选它会把这些组件占用的空间释放掉。我一般在机器上跑过一次大型项目之后会回头看看有哪些工作负载装了从来没碰过顺手清掉。7.2 缓存目录的搬迁与清理前面提到安装时的下载缓存目录会占掉大量空间。安装完成之后这个目录里的包通常不再需要除非你打算以后用离线的方式给别的机器装同样的内容。所以有两条路。如果你只是单机使用装完之后直接把这个缓存目录整个删掉能一次释放十几到几十 GB。删之前确认一下这个目录确实是缓存目录而不是安装目录路径别搞错。如果你是多机批量部署那就把它保留在数据盘上以后新机器直接用这个目录做本地源安装省下重复下载的时间。还有一种折中做法先把缓存目录整体打包压缩归档到备份盘然后删掉原目录。归档文件能压到原始体积的一半左右以后需要时解压出来还能用。这个做法适合那种需要长期维护同一版本、又不想白占磁盘的场景。7.3 VS2017/2019/2022 共存的注意点不同大版本的 Visual Studio 是可以共存的这一点很多人不知道。它们各自有独立的安装目录和配置分支互不干扰。这解决了一个大问题你不用为了维护老项目而放弃新版本。共存的几个注意点共享组件目录会复用。后装的版本如果在同一盘符会尽量复用已有的共享组件这是好事能省空间。但如果你把新版本装到了另一个盘就没法复用了会重复占一份。安装程序是统一的。从 2017 开始安装器是一个全局的组件能同时管理机器上所有版本的 Visual Studio。所以你会看到安装程序里列出多个版本这是正常的。文件关联和默认打开方式会有竞争。装完新版本后双击.sln文件默认用哪个版本打开取决于最后安装的那个。可以右键选择打开方式来指定或者用版本选择器插件来管理。磁盘规划要提前想好。如果你打算长期维持两三个版本共存共享组件目录最好放在空间最充裕的那个盘上一次性规划好。我个人在用的机器上就同时保留了老版本和新版本老项目用老版本打开保证项目文件不被自动升级新项目用新版本。两者的配置和扩展互不影响切换起来没有任何成本。这个方案的唯一要求就是磁盘给够以及第一次安装时把路径规划好。最后分享一个我自己踩过的坑不要因为某个项目在新版本里能打开就顺手保存。有些项目在保存时会被自动升级工程文件的格式和工具集版本升级之后老版本就再也打不开了。如果你需要同时在新旧环境之间来回切换打开老项目之后不要按保存或者先在版本控制里留一个干净的分支出问题能退回去。这一条比任何安装技巧都重要因为它造成的损失是不可逆的。