dotnet.exe 不会运行,因为缺少 API-MS-WIN-CRT-RUNTIME-L1-1-0.dll



我需要托管 asp.net core 2.0 app in Windows> Windows Server 2008 R2 SP 1。我正在遵循有关如何在Windows上使用IIS托管ASP.NET核心的文档指南。

安装后,我仍然无法运行dotnet.exe。它要求一个名为api-ms-win-crt-runtime-l1-1-0.dll的DLL。

程序无法启动,因为您的计算机缺少API-MS-WIN-CRT-RUNTIME-L1-1-0.DLL。尝试重新安装程序以解决此问题。

但是,在以下文件夹中,该文件的实例有很多:

  • C:Program FilesdotnetsharedMicrosoft.NETCore.App2.0.3
  • C:Program Files (x86)dotnetsharedMicrosoft.NETCore.App2.0.3
  • C:Windowswinsxsamd64_microsoft-windows-u..rsalcrt-apifwd-win7_31bf3856ad364e35_6.1.7601.18972_none_a9a51144251fb166
  • C:Windowswinsxsamd64_microsoft-windows-u..rsalcrt-apifwd-win7_31bf3856ad364e35_6.1.7601.23175_none_aa31870f3e3ad077
  • C:Windowswinsxsamd64_microsoft-windows-u..rsalcrt-apifwd-win7_31bf3856ad364e35_6.1.7601.23656_none_aa4830af3e29a3af
  • C:Windowswinsxsx86_microsoft-windows-u..rsalcrt-apifwd-win7_31bf3856ad364e35_6.1.7601.18972_none_4d8675c06cc24030
  • C:Windowswinsxsx86_microsoft-windows-u..rsalcrt-apifwd-win7_31bf3856ad364e35_6.1.7601.23175_none_4e12eb8b85dd5f41
  • C:Windowswinsxsx86_microsoft-windows-u..rsalcrt-apifwd-win7_31bf3856ad364e35_6.1.7601.23656_none_4e29952b85cc3279

指令说:

在托管系统上安装 .NET Core Windows Server hosting 捆绑包。[...]如果系统没有Internet连接,请在安装.NET Core Windows Windows Server Hosting Bundle之前获取并安装 Microsoft Visual C 2015 ReDistributable

我已经多次安装/修复了这两个软件包,但会遇到相同的错误。

可能不是dll 缺少,而是dll的依赖项之一是丢失的。

  1. 确保您正在安装Visual C 2015 Repistributable的更新版本。

  2. Visual C 2015重新分布的要求之一是KB2999226。确保也已安装。

    • 如果已经安装,请从Visual C 2015 Repistributable安装程序软件包中发布安装日志。

在Windows Server 2012 R2上我也有同样的问题。Windows Update 安装Windows特定更新已解决。

请参阅:https://github.com/dotnet/core-setup/issues/4388。

我安装了此更新:https://support.microsoft.com/en-us/help/3118401/update-for-universal-c-runtime-in-windows

tl; dr; dr:在此顺序中安装这些Windows 8.1更新

  1. KB2919442
  2. KB2919355
  3. KB2999226

按照正确的顺序安装上述3个Windows更新后,关于丢失的dll的错误应停止。


我在尝试部署 .NET Core 2.1 应用程序时遇到了同样的问题。根本原因似乎是由于Microsoft Visual C++ Redistributable的损坏安装。

来自Microsoft的文档:

Visual C 重新分布软件包安装运行时组件视觉C 库在没有视觉C 的计算机上安装。库需要运行的应用程序通过使用Visual C 的相应版本开发。

经过一些故障排除和研究后,我通过在此顺序中手动安装这3个Windows更新来解决问题

  1. KB2919442
  2. KB2919355(需要重新启动)
  3. KB2999226

这些Windows更新的安装顺序很重要! KB2999226取决于KB2919355,而KB2919355依赖于KB2919442。

安装这些Windows更新后,dotnet.exe和应用程序开始正确运行。

最新更新