Windows8.1打开程序报 api-ms-win-crt-heap-l1-1-0.dll 错误的解决办法

系统是Win8.1 64位原版镜像安装的,安装后关闭更新。之前都正常,忽然某天开机,不管运行什么程序都报错误(系统自带的好像可以,部分程序也没问题)了:
系统错误:无法启动此程序,因为计算机丢失api-ms-win-crt-heap-l1-1-0.dll 。【The program cant' start becuase api-ms-win-crt-heap-l1-1-0.dll is missing from your computer.  Try reinstalling the program to fix this problem.】
解决步骤:
初步搜索是vc_redist.x64.exe【Visual C++ Redistributable for Visual Studio 2015 RC】的问题。

重新下载安装vc_redist.x64.exe出错,错误代码Error 0x80240017。点击错误窗口的日志,找到如下问题:


[158C:182C][2016-07-28T14:42:05]i301: Applying execute package: Windows81_x64, action: Install, path: C:ProgramDataPackage CacheFC6260C33678BB17FB8B88536C476B4015B7C5E9packagesPatchx64Windows8.1-KB2999226-x64.msu, arguments: '"C:WindowsSysNativewusa.exe" "C:ProgramDataPackage CacheFC6260C33678BB17FB8B88536C476B4015B7C5E9packagesPatchx64Windows8.1-KB2999226-x64.msu" /quiet /norestart'
[158C:182C][2016-07-28T14:42:06]e000: Error 0x80240017: Failed to execute MSU package.
[1E54:1E98][2016-07-28T14:42:06]e000: Error 0x80240017: Failed to configure per-machine MSU package.
[1E54:1E98][2016-07-28T14:42:06]i319: Applied execute package: Windows81_x64, result: 0x80240017, restart: None
[1E54:1E98][2016-07-28T14:42:06]e000: Error 0x80240017: Failed to execute MSU package.


Windows8.1-KB2999226-x64.msu安装出问题,继续搜索。参考文献1中的办法:
    1.C:ProgramDataPackage Cache469A82B09E217DDCF849181A586DF1C97C0C5C85packagesPatchamd64Windows8.1-KB2999226-x64.msu copy this file to a folder you like, and

    2.Create a folder XXXX in that and execute following commands from Admin command propmt

    3.wusa.exe Windows8.1-KB2999226-x64.msu /extract:XXXX

    4.DISM.exe /Online /Add-Package /PackagePath:XXXXWindows8.1-KB2999226-x64.cab
    vc_redist.x64.exe /repair last command need not be run. Just execute exe once again.
安装vc_redist.x64.exe成功,后问题依旧。【过程中胡乱的安装了32位vc_redist.x86.exe,不过应该对最后的结果没影响,如果按照我这个方法最后问题依旧可以尝试安装32位的vc_redist.x86.exe】

继续搜索到了参考2,后面有个回答是说补丁Windows8.1-KB2999226-x64.msu安装不上,以因为缺少KB2919355补丁。


Doing further research, I found that KB2919355 is required for Visual C++ 2015 Runtimes.  Once this patch is applied, I could run KB2999226 and install Visual C++ 2015 without issues.  As soon as that was installed, all of my office apps opened without issue.

The odd thing is that I actually had KB2919355 installed.  It's applied to my installation media through Configuration Manager.  I checked Windows Updates with Microsoft and it offered KB2919355, and it was a very small update (which I know that KB2919355 is actually a rather large update!).  


一查发现KB2919355补丁是Windows 8.1 update,遂更新Windows 8.1至Windows 8.1 update[采用cn_windows_8.1_pro_vl_with_update_x64_dvd_6050873.iso镜像]。
最后重新卸载vc_redist.x64.exe及重新安装vc_redist.x64.exe。问题解决。

主要步骤参考文中加粗部分,其实就两步就搞定了。

参考文献:

1.http://stackoverflow.com/questions/31536606/while-installing-vc-redist-x64-exe-getting-error-failed-to-configure-per-machi

2.https://social.technet.microsoft.com/Forums/office/en-US/776db48a-0e09-44a2-98cf-80134566680e/this-program-cant-start-because-dll-file-is-missing-from-your-computer?forum=Office2016setupdeploy

3.Visual C++ Redistributable下载:64位,32位

原文地址:https://www.cnblogs.com/phyking/p/5715352.html