怎么安装运行库

系统问题

双击一个游戏或者老软件,弹出来「计算机中丢失 msvcp140.dll」,这种场景我碰过不少次。缺的真不是什么高深东西,就是运行库没装齐,补上就能跑,不用重装系统也不用换机器。

先讲清楚运行库是什么。运行库(Runtime Library,程序运行时反复调用的一批公共代码)负责字符串处理、内存分配、图形接口这些基础活儿。开发者不会每个软件都自己重写一遍,直接调用现成的库。软件到了你的电脑上,也得有这套库才认得出那些接口。所以安装运行库的本质,是把别人写好的公共零件补齐。

Windows 上需要你手动补的,主要就这么几类:MSVC(微软 Visual C++)运行库、.NET 系列、DirectX 运行时,以及个别游戏自带的专用小库。

先看报错里缺的是哪个文件

不同运行库缺了,报错长得不一样,对号入座最省事。文件名基本就写在弹窗上,有的弹窗还能直接按 Ctrl+C 把文字复制出来。

报错里出现的文件/提示 对应缺的运行库 从哪装
msvcp140.dll、vcruntime140.dll、msvcr120.dll、msvcp100.dll Microsoft Visual C++ Redistributable 微软官方 aka.ms 短链
d3dx9_43.dll、xinput1_3.dll、d3dcompiler_43.dll DirectX 9.0c 最终用户运行时 微软下载中心
mscoree.dll、「.NET Framework 初始化错误」 .NET Framework 3.5 或 4.8 Windows 功能 / 微软下载中心
hostfxr.dll、hostpolicy.dll、coreclr.dll .NET Desktop Runtime dotnet.microsoft.com
PhysXLoader.dll、NxCharacter.dll NVIDIA PhysX 系统软件 NVIDIA 官网
OpenAL32.dll、wrap_oal.dll OpenAL 音频库 openal.org
libcef.dll、SDL2.dll、python3x.dll 程序自己带的,通常和 exe 同目录 重新解压软件压缩包

 电脑上按 Win+R 输入 winver 后弹出的「关于 Windows」窗口

VC++ 运行库,x86 和 x64 两个都得装

这是命中率最高的一类。微软官方有固定短链,浏览器地址栏直接敲就能下:

  • 64 位包:https://aka.ms/vs/17/release/vc_redist.x64.exe
  • 32 位包:https://aka.ms/vs/17/release/vc_redist.x86.exe

两个都要装,这点很多人会漏。64 位 Windows 本身能跑 32 位程序,市面上不少游戏、老工具、插件都是 32 位的,它们只认 x86 那一套。只装 x64,32 位程序照样报缺 dll。

如果电脑上有 winget(Win10 1809 以后和 Win11 自带,在终端里敲 winget -v 能验证),两条命令更省事:

winget install "Microsoft.VCRedist.2015+.x64"
winget install "Microsoft.VCRedist.2015+.x86"

这里有个容易踩的认知坑:VC++ 运行库不是一个版本覆盖所有。2005、2008、2010、2012、2013、2015-2022 是相互独立的版本号,装了新版不会顶掉旧版。一个软件要 2010 的,你只装 2015-2022 它也起不来。现在微软主推的是 2015-2022 的合集包,绝大多数新软件够用;要是某个老程序还在报 msvcr100.dll,那就得回去补 2010 那一版。

想确认自己装过哪些,打开控制面板 → 程序 → 程序和功能,按名称排序,能在列表里看到一堆 Microsoft Visual C++ 2015-2022 Redistributable (x64) 和 (x86)。

控制面板「程序和功能」列表

.NET 那几代别装串了

.NET 分两条完全不同的产品线,搞混是重灾区。

一条是 .NET Framework,属于 Windows 自带组件。其中 3.5(含 2.0 和 3.0)在 Win10/Win11 上默认是关闭状态,得自己去打开:控制面板 → 程序 → 启用或关闭 Windows 功能 → 勾选「.NET Framework 3.5(包括 .NET 2.0 和 3.0)」→ 确定。系统会联网从 Windows Update 拉取组件,中途别断网。4.8 在 Win10 1903 以后的版本里已经内置,一般不用管;万一老程序点名要 4.6 或 4.7,装 4.8 是可以向下兼容的。

控制面板「启用或关闭 Windows 功能」窗口

另一条是 .NET(原来叫 .NET Core)5、6、7、8,是独立安装的,跟 Framework 互不兼容。程序提示要 .NET 6 就得装 6,要 8 就得装 8,装高了没用。去 dotnet.microsoft.com/download/dotnet 找版本时注意别选错:要的是 Desktop Runtime(桌面运行时),不是 Runtime,也不是 ASP.NET Core Runtime。名字差几个字,装错了弹窗照旧。

老游戏才要的 DirectX 和小库

Win10、Win11 里的 DirectX 12 早就内置了,但 DirectX 9 时代的那些旧组件(d3dx9_43.dll 之类)系统不再自带。装一个 DirectX 最终用户运行时就能补齐,它只补旧零件,不会动你现有的 DirectX 12。

下载地址是 https://www.microsoft.com/download/details.aspx?id=35。运行前会让选解压目录,解压完进目录双击 DXSETUP.exe 才真正开始装,这一步跳过的人不少。想先看当前版本,按 Win+R 输入 dxdiag,弹出的诊断工具「系统」标签页底部就写着 DirectX 版本。

运行 dxdiag 后弹出的 DirectX 诊断工具「系统」选项卡

PhysX 和 OpenAL 属于小众需求,只有个别老游戏会要。PhysX 去 NVIDIA 官网下系统软件包,OpenAL 去 openal.org 下 oalinst.exe,装完就完事。

装的时候撞上的几个坑

提示「已安装这个产品的另一个版本」——多半是你机器上已经有更新的 2015-2022 合集包了,微软的安装器不让你往回退。这种情况直接跳过,说明这个库本身不缺,问题在别处。

装完了还是报同样的错,先重启一次。部分 dll 需要在启动阶段重新注册,不重启的话进程用的还是旧的内存映像。

杀毒软件把安装包拦下来的情况也不少见,装之前先把安全软件暂时静默,装完再打开。

还有一种常见误判:程序是 32 位的,你只装了 x64 包。回上面把 x86 那一个补上。

市面上那些「运行库合集一键包」,有一说一,来源不明的整合 exe 里塞捆绑的太多了,官方渠道都是免费下载,没必要冒这个风险。真到了内网没法上外网的环境,让软件方提供离线安装包更靠谱。

多数情况下,把 VC++ 的 x64 和 x86 两个包装上,再补一个 DirectX 最终用户运行时,缺 dll 的毛病就消停了。剩下那几类,按报错文件对号入座即可。

操作系统种类多样、版本繁杂,本文内容可能无法完全匹配你的具体环境,不保证完全正确或普遍适用,仅供操作参考。