故障:
xxx.exe - 系统错误
无法启动此程序,因为计算机中丢失 api-ms-win-crt-runtime-l1-1-0.dll 。尝试重新安装该程序以解决此问题。
今天,某网友电脑上的这问题差点让我怀疑人生。
正常来说,api-ms-win-crt-runtime-l1-1-0.dll可以通过安装vc2015或vc2017得来。
实际上就是补丁kb2999226,2015和2017安装过程中会安装这个补丁,由于2017是2015的升级版,所以只安装2017就可以了。
我就是这样建议的。
结果安装了vc2017依旧弹出下面提示:
于是我建议单独更新kb2999226,结果弹出提示已安装?
?!!!
为了不丢面子,我只能建议安装微软运行库合集,结果全装了,还是提示丢失这个文件。
慌啊,我赶紧再次翻看了kb2999226补丁,可以看到确实是包含这个文件的。
之前我还嘲笑别的网友,关于建议网上搜索下载这个文件放到system32运行出错。报应,这么快就到我了。
无法定位程序输入点 ucrtbase.abort于动态链接库api-ms-win-crt-runtime-l1-1-0.dll上。
wusa /uninstall /kb:2999226
结果:
这是堵死了所有退路了啊。无话可说,我埋头虚拟机继续测试。
试了好几遍后,终于发现安装kb2999226后,删除了所有api-ms-win-crt-runtime-l1-1-0.dll,就会出现上面的问题。
我虚拟机里还能用命令卸载kb2999226,网友电脑上的这个补丁估计是彻底损坏了,还残留些东西。
试了好几遍都是上面这样,有点灰心了。最后发现卸载补丁后,不安装补丁,而是安装运行库,试了一遍能行!补丁也被运行库装上了。
于是考虑网友电脑上的解决办法:删除相关文件,相关注册表,再安装运行库。
再找网友时,网友已经放弃准备重装系统了。为了挽回面子,死皮赖脸求网友要求远程协助。
远程协助相关过程如下:
1.下载软件nsudo、everything、registry workshop。
2.打开nsudo,启用全部特权,浏览打开everything和registry workshop。
3.everything里搜索api-ms-win-crt-runtime-l1-1-0.dll,删除system32和syswow64目录残留的,再搜索删除kb2999226(网友电脑一个相关文件都没有)。
4.registry workshop里搜索删除kb2999226,只有几条残留的,都删了(不懂的建议先导出备份)。
删除后能正常安装kb2999226了,不过我没安装。
先把网友电脑控制面板卸载程序里的vc2015和vc2017都卸载了,再安装vc2015,安装好后问题软件正常打开!实际上安装2017就可以了,不过总的来说问题解决了。^_^
PS:如果安装kb2999226时,提示此补丁不适用当前系统,可能是你的win7没升级到SP1( Service Pack 1)。
2019年9月8日,补充
今天在另一个网友电脑上,遇到了同样问题。win8.1 x64系统,打开文明6出现的问题。
尝试:
dism /online /add-package /packagepath:"kb2999226解压的cab路径"
执行后,系统目录生成api-ms-win-crt-runtime-l1-1-0.dll。再安装vc2017运行库后,正常打开游戏。