十年匠心定制 · 商业建站与技术教学双线并行 咨询热线:400-886-1026 service@lmnt.cn
ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

VS2019 C++离线安装包完整指南:从解压到环境配置与踩坑排查

VS2019 C++离线安装包完整指南:从解压到环境配置与踩坑排查 简介针对C开发者准备的VS2019离线安装压缩包用于无网络或内网环境快速搭建Visual Studio 2019 C开发环境适合统一部署、网络受限或希望稳定安装的用户。压缩包经实际测试解压后运行vs_setup.exe即可按向导完成安装包含MSVC编译器、C运行时库、调试器等组件。资源共275个文件大小约678.47MB主要类型为219个vsix扩展组件、17个msi安装包、11个cab数据文件、11个exe执行程序以及json配置、cer证书等构成完整离线安装体系。已有3818人学习下载。由于所有组件均已打包安装时无需联网可自由勾选桌面开发或C工具负载避免中途断网失败适合企业批量部署或学生快速搭建编程环境。 早些年我还在用 VS2015 的时候就体会过在线安装的折磨装上没一会儿进度条卡住等一晚上第二天起来看还是老地方。后来换到 VS2019公司内网又不通外网不得已折腾了一圈离线安装包。这个VS2019C离线压缩包.rar看着只是一个普通文件里面其实藏了不少门道。这篇文章就围绕离线包展开讲清楚它是什么、怎么装、装完怎么配 C 环境以及我在这个过程中踩过的坑。如果你正准备在无网络或弱网环境下搭一套 VS2019 C 开发环境这篇文章应该能帮你少走不少弯路。在正式写之前先给你一个结论离线包不是简单的绿色软件解压即用它的核心是一个本地安装源。你需要正确运行安装引导程序勾选对组件才能把 C 工具链完整装进系统。接下来我按实际操作的顺序把整个流程拆开来讲。1. 为什么需要离线安装包网络受限场景下的刚需1.1 在线安装器的慢和半途而废Visual Studio 2019 官方提供了在线安装引导程序vs_community.exe、vs_professional.exe、vs_enterprise.exe双击之后它会根据你勾选的工作负载临时去微软服务器拉取组件。理论上你有网就能装但实际上有两个很常见的问题国内网络访问微软 CDN 的速度不稳定下载几个 GB 的组件经常断流。安装过程一旦中断再次启动时经常要从头下载或者进入一种校验文件半天、进度条不动的尴尬状态。如果你在一台需要长期离线使用的机器上比如内网开发机、学校机房、保密环境那在线安装器基本等于废的。离线包的目的就是在有网的机器上先把所有需要的安装文件完整下载到本地做成一个可移动的安装源再拷贝到目标机器上安装。1.2 离线包的本质layout 目录你可能见过有人用命令行vs_setup.exe --layout D:\vs2019offline --add Microsoft.VisualStudio.Workload.NativeDesktop --includeRecommended下载离线包。这个--layout参数做的事情就是把安装器需要的所有 cab 文件和元数据原样镜像到本地目录。所以离线包本质上是一个本地软件源。我拿到的这个VS2019C离线压缩包.rar就属于预先做好的 layout 目录然后压缩打包成 rar。对于使用者来说不需要关心当初是怎么下载的只要知道目录结构就行。一个合法的离线包通常包含这些内容vs_setup.exe离线安装的启动入口也是最重要的文件。vs_installer.exe在线安装器引导程序在离线环境中不要用它。Catalog目录存放产品清单和版本信息。Installer目录安装器本身的更新文件。packages目录按组件分类的安装载荷体积最大的就是它。1.3 拿到离线包的正确心态不少人拿到 rar 之后第一反应是解压出来找.exe双击想让它像绿色软件一样跑起来。这个思路不对。VS 再怎么离线它始终要往系统里写服务、写注册表、装驱动和 SDK所以必须走一遍正式的安装流程。你只是把下载源变成了本地安装行为本身没有变。2. 解压与启动从 rar 到可安装环境的关键细节2.1 解压目录的选择这一步看着简单但我见过太多人在这一步埋雷。解压 VS2019 离线包时目标路径务必遵守两条路径不能含中文也不能有空格。尽量放在空间充足的盘符解压后完整离线包体量通常接近 20~30 GB。比如你解压到D:\Program Files (x86)\VS2019Offline带括号带空格后面运行安装程序时很容易触发路径解析异常或者部分组件安装失败。我个人习惯放到D:\VS2019Offline这种纯英文短路径下省心。2.2 解压后启动哪个 exe这是离线安装最容易卡住的问题。离线包的根目录下通常同时存在vs_setup.exe和vs_installer.exe很多人分不清直接双击vs_installer.exe结果它会尝试联网下载安装器更新然后卡在正在下载界面。正确的是运行vs_setup.exe并且加上--noWeb参数明确告诉安装器不要联网不要更新所有内容从本地加载。完整的命令是D:\VS2019Offline\vs_setup.exe --noWeb如果你双击vs_setup.exe后界面闪退或者提示找不到某个文件建议换成命令行方式能直接看到错误日志。还有一种情况是操作系统缺少必要的运行库比如 .NET Framework 版本过低这时候安装器根本起不来。你可以先去控制面板确认一下系统里是否安装了 .NET Framework 4.7.2 或更高版本没有的话先补上。2.3 解压完整性校验rar 压缩包在传输过程中有损坏的可能尤其是几十个 GB 的大包几乎每次都能碰到个别文件校验失败。用 WinRAR 解压时如果弹出CRC 校验错误之类的提示不要心存侥幸继续安装否则装到一半会报无法找到源文件或安装包损坏。比较好的处理方式是用 WinRAR 的测试压缩文件功能先跑一遍完整校验再解压。如果你是从网盘下载的下载工具一般也会有哈希校验功能能拿到发布者给出的 SHA256 就最稳妥。花十分钟校验能省后面半天排错的时间。2.4 磁盘空间与安装占用解压占一份空间安装到系统盘又是一份空间。完整安装使用 C 的桌面开发工作负载加上若干可选组件系统盘需要预留至少 30~40 GB。如果系统盘吃紧可以考虑把 VS 安装目录改到其他盘。官方支持自定义安装位置但有些共享组件、缓存和 SDK 仍然会写到系统盘这是正常现象不用慌。3. 组件勾选是第一个分水岭C 环境装不上的根源3.1 工作负载 vs 单个组件VS2019 的安装器采用工作负载Workload和单个组件Individual Component两级勾选机制。工作负载相当于一组常用组件的集合包比如使用 C 的桌面开发就包含了编译器、标准库、Windows SDK、调试工具、CMake 工具等一堆东西。很多人看到界面后只勾了 VS 基础功能没勾 C 工作负载装完之后发现没有新建 C 控制台应用的模板或者在打开.cpp文件时看不到智能提示。原因很简单你根本没装 C 工具链。在离线包安装界面中你需要找到工作负载选项卡勾选使用 C 的桌面开发如果你要做 Windows 应用程序或驱动开发再加勾使用 C 的 Windows XP 工具之类的旧平台组件按实际需求来。对于大多数人来说桌面开发这一个工作负载足够。3.2 建议勾选的单个组件工作负载给的是推荐套餐但有些场景需要额外组件。我在单个组件选项卡里一般会再补选这几项Windows 10 SDK或对应系统的 SDK编译 Windows 原生程序必需。C CMake tools for Windows做跨平台 C 项目时会用到 CMake。C ATL如需开发 COM 组件、C MFC如需维护遗留 MFC 项目。那些拿离线包做 C 学习的朋友建议只勾使用 C 的桌面开发就够了不需要把 MFC、ATL、Linux C 开发全选上选多了不仅占空间还增加安装失败的路径。3.3 组件选择与安装时间的预期在本地源安装时速度主要瓶颈是磁盘 IO 而不是网络。机械硬盘上装 VS2019 全组件可能得四五十分钟换成 SSD一般十分钟到二十分钟就能搞定。如果装完提示某组件失败先去C:\ProgramData\Microsoft\VisualStudio\Packages看看有没有下载不完整的缓存这类缓存文件在离线环境中会直接影响重试结果。不过大多数情况下完整校验过的离线包很少出问题。4. 从新建项目到跑通第一个程序验证环境是否正常4.1 新建一个 C 控制台应用安装完成后从开始菜单启动 Visual Studio 2019。第一次启动会让你登录微软账户、选择开发设置和主题这一步可以跳过不影响使用。进入主界面后选择创建新项目。搜索控制台应用模板名称一般是控制台应用带 C 标识。项目名称取一个纯英文的名字比如HelloCpp位置也不要带中文路径。点击创建等待 VS 生成项目骨架。如果新建项目模板列表里没有 C 控制台应用说明之前安装时没勾选 C 工作负载需要重新运行vs_setup.exe --noWeb点击修改补勾组件。4.2 第一个程序与快捷键VS 自动生成的模板里已经有一段 Hello World 代码。你可以改成一个简单版本#include iostream int main() { std::cout Hello from VS2019 C offline! std::endl; return 0; }按CtrlF5直接运行注意不是F5。两者的区别是CtrlF5是开始执行不调试运行完会停留一个请按任意键继续的提示适合看输出结果F5是开始调试适合断点调试。我第一次用 VS 时老按 F5窗口一闪而过还以为程序没跑起来。把 VS2019 里几个高频快捷键列一下新手上手绝对用得上快捷键功能CtrlF5开始执行不调试F5开始调试F9设置/取消断点F10逐过程调试F11逐语句调试CtrlK, CtrlC注释选中代码CtrlK, CtrlU取消注释CtrlShiftB生成解决方案F12转到定义CtrlShiftF在文件中查找4.3 生成的 exe 在哪里编译成功后在项目文件夹下的x64\Debug\或x64\Release\目录里能找到.exe文件。这里有个小常识VS2019 默认在工具栏上附近有一个解决方案平台下拉框如果显示的是x64那编译的就是 64 位程序如果是x86那编译的就是 32 位程序。热词里提到vs2019 32位 open62541如果你要编译 32 位版本的第三方库记得把这里的平台切到x86再重新编译。默认新项目是 Debug 配置生成的 exe 体积较大且依赖调试运行库。要给别人的机器分发需要切换到 Release 配置再编译。打包成安装程序是另一个话题VS2019 可以通过扩展里安装 Installer Projects 插件来做也可以在 Release 目录下直接把 exe 和依赖的 DLL 拷走前提是你用的是静态链接或者目标机器装了对应 VC 运行库。4.4 配置 Debug/Release 和平台切换在 VS2019 工具栏上你会看到Debug下拉框和x64下拉框。Debug 适用于开发调试阶段Release 用于最终产物。平台下拉框里有 x86、x64、ARM 等选项。修改之后记得重新生成解决方案否则你运行的还是上一次生成的结果。如果你刚从 VS2015 或 VS2017 迁移过来可能遇到项目属性里平台工具集显示为v142这是 VS2019 对应的工具集版本。在离线包环境下只要当初勾选了 C 工作负载v142 工具集就是自带的不需要额外下载。5. 高频问题排查中文注释报错、编译闪退与路径坑5.1 中文注释报错的真相文件编码问题热词里有一条vs2019 中的 .cpp 等文件加入中文注释就报错这个问题太典型了。VS2019 默认情况下新建的源文件保存编码是UTF-8 with BOM带签名而早期版本的 VS 或某些编辑器生成的是 GB2312 编码。当你把一个 GB2312 编码的.cpp文件放到 VS2019 里编译编译器cl.exe按默认代码页解析遇到中文注释里的字节流就可能把它误解为代码的一部分于是报一堆C2001常量中有换行符、C2143语法错误之类的错误。解决办法有三种选一种就行最直接在 VS 里打开该文件菜单栏文件 - 另存为点击保存按钮右侧的下拉箭头选择高级保存选项把编码改成Unicode (UTF-8 带签名) - 代码页 65001然后保存。项目层面右键项目 - 属性 - 配置属性 - C/C - 命令行在其他选项里加一句/utf-8强制编译器使用 UTF-8 编码解析源文件。整个 VS 层面工具 - 选项 - 环境 - 文档可以调整默认保存编码但只对之后新建的文件生效。我自己处理这个问题时习惯直接在项目命令行加/utf-8。原因很简单团队里总有同事用不同编辑器改代码你没法保证每个人保存的编码一致。加上这个编译选项后只要源文件本身是 UTF-8基本不会再出现中文注释报错。5.2 编译闪退或运行闪退热词里还有一条vs2019 编译 c 闪退。这里的闪退分两种情况编译过程中 VS 进程闪退多半是安装组件不完整或系统缺少必要的运行库。先重新运行vs_setup.exe --noWeb点击修复看看能否恢复。如果不行检查 Windows 事件查看器里的错误日志定位到具体模块。编译成功但运行时控制台窗口一闪而过这不是 VS 闪退而是程序执行完自动关闭了。在代码return 0;前加一句std::cin.get();或者在 IDE 里用CtrlF5运行就能看到窗口停留。还有一种是杀毒软件误拦截。VS2019 的编译器会在临时目录生成大量文件某些国产杀毒软件会把 cl.exe 或生成的 exe 误判为风险程序直接杀掉进程。装完 VS 后建议把安装目录和项目目录加入杀毒软件的信任区。这个坑我在内网机器上遇到过两次排查了老半天最后关掉实时防护就全好了。5.3 中文路径和空格路径的坑VS2019 对中文路径的支持比旧版本好一些但 C 编译器和第三方库不一定。比如 OpenCV、Open62541 这类 C 库在 include 头文件或链接库时如果路径里有中文经常出现fatal error C1083: 无法打开包括文件。这不是 VS 本身的问题是底层工具链对非 ASCII 路径支持不彻底。所以我的原则是所有 C 项目和依赖库一律放到英文路径下。比如C:\Dev\MyProject而不是C:\开发\我的项目。项目名也别用中文。别嫌麻烦这条能帮你避开至少一半的莫名奇妙的编译错误。5.4 离线环境下运行库和密钥问题VS2019 安装后系统里会多出Microsoft Visual C Redistributable运行库这是编译出来的程序在别的机器上运行所必需的。离线包安装时会自动把这些运行库带到系统里但你分发 exe 到其他电脑时对方机器上不一定有。解决办法是去安装目录下找到VC_redist.x64.exe和VC_redist.x86.exe一并拷给对方安装。关于激活社区版Community免费专业版Professional和企业版Enterprise需要许可证。热词里提到vs2019 专业版密钥这里提醒一下专业版可以用微软账号登录获得试用期试用期结束后需要购买正版授权。网上流传的各种密钥大多已经失效而且用非正规渠道激活企业软件有风险强烈不建议在生产环境里这么干。学习用途直接用社区版就好C 功能上没有本质区别。5.5 模板工程与离线环境下的扩展受限VS2019 安装器自带一批项目模板离线包也一样C 控制台应用、空项目、静态库、动态链接库这些都有。但如果你需要更复杂的模板比如OpenCV 项目模板或C 小游戏框架这些属于 VS 扩展市场里的内容离线环境下通常无法直接在线安装。可以找同事拷贝一份.vsix扩展文件双击安装或者放到 VS 的扩展目录下手动部署。我做 OpenCV 开发时是从官网下载 OpenCV 源码和预编译包然后在项目属性里手动配置包含目录、库目录和附加依赖项。这套流程在离线环境下完全可行只要把你需要的第三方库事先下载好和 VS 离线包一起拷贝到内网就行。6. 我的几条实操心得最后讲几点我自己实际用了这么久 VS2019 C 离线包后的体会。第一离线包安装完最好马上做一个系统快照或备份。因为 VS 安装后系统里会有大量注册表项和系统服务一旦之后装其他软件把环境搞乱了重装 VS 的成本很高。有快照的话出问题一键还原能省大量时间。第二离线包别删。你放在磁盘上的那个 layout 目录既是安装源也是修复源。以后 VS 出问题运行vs_setup.exe --noWeb选修复就能解决大部分故障。删掉离线包等于把救命稻草扔了。第三C 学习路线可以先用 VS2019 自带的模板跑几个小项目比如控制台版冒泡排序、链表、小游戏把调试器用熟。遇到编译错误别慌双击错误列表里的条目VS 会直接跳到出错代码行。绝大多数新手报错都能通过读错误信息自己解决。离线安装这条路看似绕了一大圈实际上是网络受限环境下最稳妥的方案。从解压校验到组件选择每一步都有讲究但只要你按顺序来基本不会出大问题。希望这篇文章能帮你顺利把 VS2019 C 环境跑起来。本文还有配套的精品资源点击获取
返回列表