Microsoft Visual C++ Redistributable 2015-2022 安装指南:解决 DLL 缺失与版本选择
2026/9/20 1:20:04 网站建设 项目流程

1. 这个运行库到底是个什么东西

如果你在 Windows 上跑过稍微复杂一点的软件,大概率见过这个弹窗:The program can't start because MSVCP140.dll is missing,或者error: microsoft visual c++ 14.0 or greater is required。很多人第一反应是去网上搜一个 dll 文件丢进系统目录,结果要么没用,要么把系统搞得更乱。其实这个问题的正解,就是装对Microsoft Visual C++ Redistributable

我先把话说清楚:Visual C++ Redistributable 不是编译器,也不是开发工具,它是微软官方打包的一套运行时库。你用 Visual Studio 写的 C++ 程序,编译出来之后并不会把所有依赖代码都塞进 exe 里,而是动态链接到一堆以MSVCPVCRUNTIMEMSVCR开头的 dll。这些 dll 就是运行库。程序运行时找不到它们,就直接崩给你看。所以 Redistributable 的作用,说白了就是把这些公共 dll 提前装到系统里,让所有依赖它们的程序都能正常跑起来。

那为什么标题里写的是2015-2019,而现在网上又到处是2015-2022?这里有个很多人搞混的关键点:从 Visual Studio 2015 开始,微软把运行库的版本策略改了,2015、2017、2019、2022 这几个版本共用同一套二进制兼容的运行库,安装包也合并成了一个。也就是说,你装一个 2015-2022 的包,2015 到 2022 编译的程序全都能跑。标题里的 2015-2019 是早期命名,现在官方下载页基本都统一叫 2015-2022 了。理解这一点,能帮你省掉大量"到底该装哪个版本"的纠结。

这篇文章适合谁看?三类人:一是普通用户,装个软件、游戏、MATLAB、CAD 结果被 dll 报错卡住;二是 Python 开发者,尤其是用 PyCharm 装某些库时撞上microsoft visual c++ 14.0 is required;三是刚配好 VS Code 写 C/C++ 的新手,编译能过但运行报错。不管你是哪一类,下面这套东西你都能直接抄作业。

2. 版本迷宫:x86、x64、AIO 到底怎么选

2.1 为什么会有 x86 和 x64 两个包

这是新手最容易踩的坑。很多人以为"我系统是 64 位,那只装 x64 就行了",结果装完还是报错。原因在于:运行库的位数取决于程序本身,而不是你的操作系统

一个 32 位的程序,即使在 64 位 Windows 上运行,它加载的也是 32 位的运行库(x86)。一个 64 位程序加载的是 64 位运行库(x64)。而 Windows 的System32目录里其实同时躺着两套 dll,32 位程序会被重定向到SysWOW64。所以最稳妥的做法是:x86 和 x64 两个都装。它们互不冲突,装在一起是标准操作,不是重复安装。

我见过太多人只装 x64,然后某个老工具、某个游戏启动器、某个驱动配套软件死活打不开,折腾半天才发现是缺 x86。所以别省这一步。

2.2 ARM64 版本要不要管

近两年 ARM 架构的 Windows 设备多起来了,微软也提供了 ARM64 版本的 Redistributable。判断方法很简单:设置里看系统类型,如果写的是"基于 ARM64 的处理器",那你就需要 ARM64 包。不过要注意,ARM64 设备上跑 x64 程序时,系统会通过模拟层处理,这时候可能仍然需要 x64 运行库。所以 ARM64 设备上,ARM64 和 x64 两个包都装上,是最保险的。

2.3 AIO 合集包值不值得用

网上流传的Visual C++ Redistributable AIO(All-in-One)把 2005 到 2022 各个版本打包成一个安装程序,一键全装。它的优点是省事,尤其适合给新装的系统做初始化。但有几个点必须提醒:

  • AIO 是第三方打包的,不是微软官方发布,来源不明的版本有被篡改的风险,一定要从可信渠道获取。
  • 它装的东西比你实际需要的多,会往系统里塞一堆老版本运行库。对绝大多数人来说没坏处,但如果你追求系统干净,还是按需装官方包更好。
  • 某些 AIO 会静默安装、静默改注册表,企业环境下可能不符合软件管理规范。

我的建议是:个人电脑图省事可以用,但优先选官方渠道的 2015-2022 合并包,再按需补 2013 及更早的版本。

2.4 一张表理清版本对应关系

运行库版本对应 Visual Studio是否与后续版本二进制兼容典型报错关键词
2005 / 2008VS2005 / VS2008否,独立MSVCR80 / MSVCR90
2010VS2010否,独立MSVCR100
2012VS2012否,独立MSVCR110
2013VS2013否,独立MSVCR120
2015-2022VS2015 至 VS2022是,合并为一套MSVCP140 / VCRUNTIME140

看这张表你就明白了:2015 之前的每个版本都是独立的,缺哪个装哪个;2015 之后合并成一套,装最新的 2015-2022 就能覆盖。这就是为什么现在下载页几乎只推 2015-2022。

3. 手把手:从下载到验证的完整流程

3.1 官方下载渠道怎么找

最靠谱的方式是直接去微软官方下载中心搜 "Microsoft Visual C++ Redistributable"。官方页面会同时列出 x86、x64、ARM64 三个链接,对应最新版。注意认准域名是微软官方域名,别点进那些挂满广告的第三方下载站——那些站点经常把安装包重新打包,捆绑一堆东西。

如果你在官方页面看到的是 "2015-2022" 而不是 "2015-2019",别慌,这就是同一个东西的新命名,装它没错。

3.2 安装顺序和静默安装参数

普通用户双击安装、一路下一步就行。但如果你要批量部署,或者想写进自动化脚本,静默安装参数很有用:

# 静默安装,不弹窗,不重启 VC_redist.x64.exe /install /quiet /norestart # 静默安装 x86 版本 VC_redist.x86.exe /install /quiet /norestart # 查看帮助,确认参数 VC_redist.x64.exe /?

/quiet表示无界面,/norestart表示装完不自动重启。这两个参数组合在批量装机、CI 环境初始化时特别实用。返回值也有讲究:0表示成功,3010表示成功但需要重启,1638表示已经装了更高版本所以跳过。写脚本时判断这几个返回码,能避免误判失败。

3.3 装完怎么验证真的生效了

装完不是看"安装成功"四个字就完事,得实际验证。两个方法:

方法一:看已安装程序列表。控制面板的程序列表里应该能看到 "Microsoft Visual C++ 2015-2022 Redistributable (x64)" 和 "(x86)" 两条记录,版本号是当前最新。

方法二:直接查 dll。打开C:\Windows\System32,找msvcp140.dllvcruntime140.dllvcruntime140_1.dll。注意vcruntime140_1.dll是 2019 之后才引入的,很多"装了还是报错"的情况就是缺这个文件。如果 System32 里有,SysWOW64 里也有,那基本就齐了。

提示:如果你装完运行库,程序还是报缺 dll,先别急着重装。用where msvcp140.dll或者直接看文件属性里的版本号,确认是不是被某个旧版本覆盖了。有些软件会自带一份旧 dll 放在自己目录里,优先级高于系统目录,这种情况要单独处理。

3.4 一个真实的排查案例

我之前帮人处理过一个 MATLAB 启动报错,提示缺VCRUNTIME140_1.dll。对方说自己"已经装了 2015-2019",我一看版本号,是 2019 年初的老包,那时候vcruntime140_1.dll还没进这个包。换成最新的 2015-2022 包,问题立刻消失。这个案例说明:同名运行库也有版本差异,装最新版能避免很多莫名其妙的缺文件问题

4. 开发场景:PyCharm、VS Code 报错怎么破

4.1 PyCharm 报 microsoft visual c++ 14.0 is required

这个报错在 Python 圈太常见了。你pip install某个带 C 扩展的库(比如某些科学计算、图像处理、数据库驱动包),编译阶段直接甩你一句:

error: Microsoft Visual C++ 14.0 or greater is required. Get it with "Microsoft C++ Build Tools"

很多人被这句话误导,跑去装几个 G 的 Visual Studio Build Tools。其实分两种情况:

  • 如果你装的是预编译好的 wheel 包,那只需要运行库(Redistributable)就够了,装 2015-2022 即可。
  • 如果你装的是源码包,需要现场编译,那才需要 Build Tools(含编译器)。

判断方法:看 pip 输出里有没有Building wheel for xxx这种字样。有,就是源码编译,需要 Build Tools;没有,直接下 wheel,那装 Redistributable 就能解决。绝大多数情况下,先装 Redistributable 试一下,能省下几个 G 的下载。

4.2 VS Code 配 C/C++ 环境时的运行库问题

用 VS Code + MinGW 或者 MSVC 写 C++,编译能过但运行报错,八成也是运行库的事。这里要区分编译器:

  • MinGW/GCC编译出来的程序,依赖的是 GCC 自己的运行库(libstdc++ 等),跟微软的 Redistributable 关系不大。如果报gcc 不是内部或外部命令,那是环境变量没配好,不是运行库问题。
  • MSVC(cl.exe)编译出来的程序,才依赖微软运行库。这时候装 2015-2022 就对了。

我见过有人把这两个问题混为一谈,明明是 PATH 没配,却去反复重装运行库,纯属白费功夫。先看清楚报错是"找不到命令"还是"找不到 dll",方向完全不同。

4.3 打包发布时怎么处理依赖

如果你自己开发软件要发布给别人用,别指望用户自己去装运行库。两个方案:

  • 静态链接运行库:编译时选/MT而不是/MD,把运行库代码直接编进 exe。缺点是 exe 变大,多个程序无法共享运行库。
  • 随包附带安装程序:把VC_redist.x64.exe和你的安装包放一起,安装时静默调用。这是商业软件的主流做法。

选哪个看场景:小工具、单文件分发,静态链接省心;大型软件、多个组件共享,动态链接加附带安装更合理。

5. 那些年踩过的坑和独家经验

5.1 装了还是报错?先查这几个地方

现象可能原因排查动作
报缺 msvcp140.dll只装了 x64,程序是 32 位补装 x86 版本
报缺 vcruntime140_1.dll装的是 2019 早期旧包换最新 2015-2022 包
装完重启后仍报错程序目录自带旧 dll 覆盖检查程序目录下的 dll 版本
安装程序报 0x80070666已装更高版本无需处理,属正常跳过
报错但程序能跑报错来自另一个组件用依赖查看工具定位具体 dll

5.2 别乱下 dll 文件往系统里丢

这是我最想强调的一点。网上那些"dll 下载站"提供的单个 dll 文件,来源不明、版本混乱,而且运行库 dll 之间是有依赖关系的,你补了一个可能又缺另一个。更糟的是,某些被篡改的 dll 可能带恶意代码。正确做法永远是:装官方完整运行库包,而不是单独补 dll

5.3 系统重装后的初始化清单

如果你经常重装系统,建议把运行库安装作为装机的固定步骤。我的习惯顺序是:先装 2015-2022 的 x86 和 x64,再补 2013、2012、2010 这几个老版本(因为有些老软件还在用)。这样一套下来,99% 的软件都能直接跑,省得以后一个个报错再回头补。

5.4 关于"最新版一定最好"的例外

绝大多数情况装最新版没错,但极少数老软件会挑版本。比如某些工业软件、老版本 CAD 插件,可能对特定版本有依赖。如果装最新版后反而出问题,可以试试装它发布年代对应的那个版本。这种情况很少,但遇到了别死磕,换版本试试往往就通了。

5.5 企业批量部署的小技巧

企业环境里几十上百台机器,一台台点不现实。用组策略或者部署工具推送静默安装命令,配合返回码判断,能自动化完成。注意/norestart一定要加,否则批量重启会打乱用户工作。另外建议把安装包放在内网共享,避免每台机器都去外网下载。

6. 几个高频疑问的快速解答

问:2015-2019 和 2015-2022 是同一个包吗?答:是同一套运行库的不同命名阶段。2015 到 2022 二进制兼容,装最新的 2015-2022 即可覆盖 2015-2019 的所有需求。

问:我系统是 64 位,只装 x64 行不行?答:不行。32 位程序需要 x86 运行库,两个都装才完整。

问:装运行库需要管理员权限吗?答:需要。它要往系统目录写 dll 并注册组件,普通权限装不了。

问:装完需要重启吗?答:通常不需要。如果安装程序提示需要重启,一般是某些 dll 正在被占用,重启后生效。

问:为什么我装了运行库,Python 装包还是报 14.0 required?答:那说明你装的是源码包,需要的是编译器(Build Tools),不是运行库。看 pip 输出有没有Building wheel来判断。

问:AIO 合集包安全吗?答:官方渠道的没问题,第三方打包的要谨慎。优先用官方单独包,AIO 只作备选。

问:运行库会拖慢系统吗?答:不会。它只是提供 dll,不常驻后台,对性能没有可感知影响。

问:卸载旧版本再装新版本,还是直接覆盖?答:直接装新版即可,安装程序会自动处理版本关系。不需要手动卸载,手动卸载反而可能误删其他程序依赖的组件。

7. 写在最后的一点个人习惯

折腾运行库这么多年,我最大的体会是:别把它当成一个"出问题才想起来"的东西,而是当成系统的基础设施。新装系统、新配开发环境,第一件事就是把 2015-2022 的 x86 和 x64 装上,再补几个老版本。这套动作花不了五分钟,却能省掉后面无数个"程序打不开"的排查时间。

另外,遇到 dll 报错时,先冷静看清楚报的是哪个 dll、程序是 32 位还是 64 位、自己装的是哪个版本。这三个信息一确认,问题基本就定位了。最忌讳的就是一看到报错就到处下 dll、反复重装,方向错了,再努力也是白搭。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询