dotnet.exe 无法运行,因为缺少 api-ms-win-crt-runtime-l1-1-0.dll
Posted
技术标签:
【中文标题】dotnet.exe 无法运行,因为缺少 api-ms-win-crt-runtime-l1-1-0.dll【英文标题】:dotnet.exe won't run because api-ms-win-crt-runtime-l1-1-0.dll is missing 【发布时间】:2017-12-12 15:30:47 【问题描述】:我需要在 Windows Server 2008 R2 SP1 上的 IIS 中托管 ASP.NET Core 2.0 应用程序。我正在关注有关如何Host ASP.NET Core on Windows with IIS 的文档指南。
安装后还是不能运行dotnet.exe
。它需要一个名为 api-ms-win-crt-runtime-l1-1-0.dll
的 DLL。
程序无法启动,因为您的计算机中缺少 api-ms-win-crt-runtime-l1-1-0.dll。尝试重新安装程序以解决此问题。
但是,计算机上有 很多 个此文件的实例,位于以下文件夹中:
C:\Program Files\dotnet\shared\Microsoft.NETCore.App\2.0.3
C:\Program Files (x86)\dotnet\shared\Microsoft.NETCore.App\2.0.3
C:\Windows\winsxs\amd64_microsoft-windows-u..rsalcrt-apifwd-win7_31bf3856ad364e35_6.1.7601.18972_none_a9a51144251fb166
C:\Windows\winsxs\amd64_microsoft-windows-u..rsalcrt-apifwd-win7_31bf3856ad364e35_6.1.7601.23175_none_aa31870f3e3ad077
C:\Windows\winsxs\amd64_microsoft-windows-u..rsalcrt-apifwd-win7_31bf3856ad364e35_6.1.7601.23656_none_aa4830af3e29a3af
C:\Windows\winsxs\x86_microsoft-windows-u..rsalcrt-apifwd-win7_31bf3856ad364e35_6.1.7601.18972_none_4d8675c06cc24030
C:\Windows\winsxs\x86_microsoft-windows-u..rsalcrt-apifwd-win7_31bf3856ad364e35_6.1.7601.23175_none_4e12eb8b85dd5f41
C:\Windows\winsxs\x86_microsoft-windows-u..rsalcrt-apifwd-win7_31bf3856ad364e35_6.1.7601.23656_none_4e29952b85cc3279
指令说:
在托管系统上安装 .NET Core Windows Server Hosting 包。 [...] 如果系统没有 Internet 连接,请在安装 .NET Core Windows Server Hosting 捆绑包之前获取并安装 Microsoft Visual C++ 2015 Redistributable。
我已经多次安装/修复了这两个包,但都遇到了同样的错误。
【问题讨论】:
【参考方案1】:这可能不是 DLL 缺少,而是缺少 DLL 的依赖项之一。
确保您正在安装 Visual C++ 2015 Redistributable 的 Update 3 version。
Visual C++ 2015 Redistributable 的要求之一是KB2999226。确保也安装了它。
如果已安装,请发布 Visual C++ 2015 Redistributable 安装程序包中的安装日志。【讨论】:
【参考方案2】:在 Windows Server 2012 R2 上 我有同样的问题。 Windows 更新 + 安装 Windows 特定更新解决了它。
见:https://github.com/dotnet/core-setup/issues/4388。
我安装了这个更新: https://support.microsoft.com/en-us/help/3118401/update-for-universal-c-runtime-in-windows
【讨论】:
【参考方案3】:TL;DR:按此顺序安装这些 Windows 更新:
-
KB2919442
KB2919355
KB2999226
按照正确的顺序安装以上3个Windows更新后,关于缺少dll
的错误应该会停止。
我在尝试将 .NET Core 2.1 应用程序部署到 Windows 2012 R2 机器时遇到了基本相同的问题。根本原因似乎是由于Microsoft Visual C++ Redistributable
的安装损坏。
来自Microsoft's documentation:
Visual C++ Redistributable Packages 安装运行时组件 没有 Visual C++ 的计算机上的 Visual C++ 库 安装。这些库是运行应用程序所必需的 使用相应版本的Visual C++开发。
经过一些故障排除和研究,我通过手动安装这 3 个 Windows 更新按此顺序解决了这个问题:
-
KB2919442
KB2919355(需要重启)
KB2999226
这些 Windows 更新的安装顺序很重要! KB2999226 取决于 KB2919355,KB2919355 取决于 KB2919442。
安装这些 Windows 更新后,dotnet.exe
和应用程序开始正常运行。
【讨论】:
以上是关于dotnet.exe 无法运行,因为缺少 api-ms-win-crt-runtime-l1-1-0.dll的主要内容,如果未能解决你的问题,请参考以下文章
运行Chromium浏览器无法登录谷歌账号因为缺少google api密钥
WAMPServer 无法启动,因为缺少 api-ms-win-crt-runtime-l1-1-0.dll
错误:C:\Program Files\dotnet\dotnet.exe 失败,返回码:1
运行Chromium浏览器缺少google api密钥无法登录谷歌账号的解决办法
该程序无法启动,因为在我的计算机上启动 Apache 服务器时缺少 api-ms-win-crt-runtime-l1-1-0.dll [关闭]