dotnet.exe将无法运行,因为缺少api-ms-win-crt-runtime-l1-1-0.dll

时间:2017-12-12 15:30:47

标签: windows asp.net-core windows-server-2008-r2

我需要在 Windows Server 2008 R2 SP 1上的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

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

3 个答案:

答案 0 :(得分:1)

可能不是DLL 缺少,而是缺少DLL的一个依赖项。

  1. 确保您正在安装Visual C ++ 2015 Redistributable的Update 3 version

  2. Visual C ++ 2015 Redistributable的一个要求是KB2999226。确保安装它。

    • 如果已安装,请从Visual C ++ 2015 Redistributable安装程序包发布安装日志。

答案 1 :(得分:1)

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

答案 2 :(得分:0)

TL; DR:依次安装这些Windows更新

  1. KB2919442
  2. KB2919355
  3. KB2999226

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


尝试在 Windows 2012 R2 计算机上部署 .NET Core 2.1 应用程序时,我遇到了基本上相同的问题。根本原因似乎是由于Microsoft Visual C++ Redistributable的安装损坏。

来自Microsoft's documentation

  

Visual C ++可再发行组件包安装以下组件的运行时组件   没有Visual C ++的计算机上的Visual C ++库   已安装。这些库是运行以下应用程序所必需的:   通过使用相应版本的Visual C ++开发。

经过一些故障排除和研究后,我通过按以下顺序手动安装这3个Windows更新

解决了该问题:
  1. KB2919442
  2. KB2919355(需要重新启动)
  3. KB2999226

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

在安装这些Windows更新之后,dotnet.exe并且该应用程序开始正确运行。