故障:
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上。
绞尽脑汁想了下,建议卸载kb2999226补丁,重新安装。
wusa /uninstall /kb:2999226
结果:
这是堵死了所有退路了啊。无话可说,我埋头虚拟机继续测试。
试了好几遍后,终于发现安装kb2999226后,删除了所有api-ms-win-crt-runtime-l1-1-0.dll,就会出现上面的问题。
我虚拟机里还能用命令卸载kb2999226,网友电脑上的这个补丁估计是彻底损坏了,还残留些东西。
- 在虚拟机测试,故障情况下,卸载kb2999226补丁,重启。
- everything搜索api-ms-win-crt-runtime-l1-1-0.dll,结果空白。
- 安装kb2999226过程everything结果页面闪现了一下好几个dll文件,又消失了。
试了好几遍都是上面这样,有点灰心了。最后发现卸载补丁后,不安装补丁,而是安装运行库,试了一遍能行!补丁也被运行库装上了。
于是考虑网友电脑上的解决办法:删除相关文件,相关注册表,再安装运行库。
再找网友时,网友已经放弃准备重装系统了。为了挽回面子,死皮赖脸求网友要求远程协助。
远程协助相关过程如下:
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出现的问题。
尝试:
- nsudo配合everything搜索api-ms-win-crt-runtime-l1-1-0.dll,删除掉系统目录的。
- 安装vc2015,卡在windows8.1 x64的安装进度上半天不动,最后结束wusa.exe进程,停止安装
- 运行wusa /uninstall /kb:2999226卸载补丁,成功卸载,再次安装,卡在“正在此计算机上搜索更新”。结束wusa.exe进程后,无法再次安装补丁kb2999226。
- nsudo配合everything、RegistryWorkshop,删除kb2999226相关文件、注册表,能再次安装,还是卡在“正在此计算机上搜索更新”
- 停止windows更新服务,重命名C:\Windows\SoftwareDistribution文件夹,再次启用windows更新服务,安装补丁还是卡着
- 下载directxrepair,勾选修复api sets,修复后,系统目录没有生成api-ms-win-crt-runtime-l1-1-0.dll
- 考虑到系统更新可能出问题了,采用dism强制安装补丁。解压kb2999226,管理员命令行,执行命令:
dism /online /add-package /packagepath:"kb2999226解压的cab路径",如下
dism /online /add-package /packagepath:"Windows6.1-KB2999226-x64.cab"
执行后,系统目录生成api-ms-win-crt-runtime-l1-1-0.dll。再安装vc2017运行库后,正常打开游戏。
2020/9/26,又遇到一个网友,以上方法都不适用,最后个dism的方法错误提示0x80070308,如下:
经过一番周折,发现解决方法如下:
1.运行regedit打开注册表,展开HKEY_LOCAL_MACHINE\COMPONENTS,删除右侧PendingRequired,everything搜索删除pending.xml(需要nsudo运行everything)。
2.如果上面注册表项没有COMPONENTS,需要执行命令:
reg load HKLM\COMPONENTS C:\Windows\System32\config\COMPONENTS
3.删除PendingRequired和文件pending.xml后就可以安装vc2015-2019运行库了。