我需要在 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
。
程序无法启动,因为您的计算机缺少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 。
我已经多次安装/修复了这两个软件包但得到了同样的错误。
答案 0 :(得分:1)
可能不是DLL 缺少,而是缺少DLL的一个依赖项。
确保您正在安装Visual C ++ 2015 Redistributable的Update 3 version。
Visual C ++ 2015 Redistributable的一个要求是KB2999226。确保安装它。
答案 1 :(得分:1)
我有同样的问题。 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更新:
按正确的顺序安装上述3个Windows更新后,有关丢失的dll
的错误应停止。
尝试在 Windows 2012 R2 计算机上部署 .NET Core 2.1 应用程序时,我遇到了基本上相同的问题。根本原因似乎是由于Microsoft Visual C++ Redistributable
的安装损坏。
Visual C ++可再发行组件包安装以下组件的运行时组件 没有Visual C ++的计算机上的Visual C ++库 已安装。这些库是运行以下应用程序所必需的: 通过使用相应版本的Visual C ++开发。
经过一些故障排除和研究后,我通过按以下顺序手动安装这3个Windows更新 :
解决了该问题:这些Windows更新的安装顺序很重要! KB2999226取决于KB2919355,KB2919355取决于KB2919442。
在安装这些Windows更新之后,dotnet.exe
并且该应用程序开始正确运行。