最近碰到一个问题,在我软件安装或运行时会提示缺少api-ms-win-crt-runtime-|1-1-0.dll
当然第一个想到的是运行库没有装,但是很清楚的是我的电脑是装过vc_redist_2015.x64.exe,可是为什么还是不行了,为此百度了各种方法丢失的解决方法
所以对应就有两种方法:
一、下载对应的vs2015运行库和KB2999226补丁程序
补丁程序可在microsoft官网下载,官网地址:https://www.microsoft.com/zh-cn/download/
先来看下错误图
检查第一步,我还是重新把vs运行时库装了一边,虽然知道还是不行,还是再次安装了下,在运行时按着预期的来了,程序运行还是报错
检查第二步,将下载的KB2999226补丁程序程序安装后,完美解决了
那很多人到官网上不知道怎么下载,那我来截个图说明下,打开miscrosoft官网下载地址:https://www.microsoft.com/zh-cn/download/
在搜索框中输入要下载的程序名
例如,我这里下载的是KB2999226补丁,找到对应系统的windows补丁,下载就可以了
这里提供下win7_64的补丁位置,其他的自己找就可以了
https://www.microsoft.com/zh-cn/download/details.aspx?id=49093
二、直接拷贝正确的文件
当然还有一个最简单的方法,在正常运行的机子上将库文件直接拷贝过去,运行就正常了
1、到正常的机器,或者就在开发环境,去搜索api-ms-win-crt-runtime-l1-1-0.dll文件。
结果在C:windowssystem32,以及C:WindowsSysWOW64,以及C:Program Files (x86)Mozilla Firefox中都找到了该文件。
三个目录下都有,到底选哪个呢?涉及到一个新的64位系统32位dll的问题。正常运行的系统是win7_64,并且程序也是64位的,所以就到syswow64下去拷贝了
规则如下:
a、64位操作系统,32位程序,选择syswow64下dll
b、64位操作系统,64位程序,选择system32下dll
c、32位操作系统,32位程序,选择system32下dll
2、拷贝所有api-ms开头的dll,以及msvcp140.dll,vcruntime140.dll,ucrtbase.dll到程序目录。