随着 .NET 5 正式版的发布,越来越多的人开始向 .NET 5 、.NET Core 平台迁移。尽管微软已经在 2020 年 1 月 14 日停止了对 Windows 7 的支持,但仍有大批客户的操作系统对 Windows 7 恋恋不舍。为此,我们需要解决 .NET 5 运行时(Runtime)在部分 Windows 7 系统上无法安装、运行报错的问题,该问题也同时在安装 .NET Core 3.1 环境时出现。
问题复现
在一台未打完全部补丁的 Windows 7 操作系统中安装 .NET 5 环境时,安装过程是可以正常执行的。在完成安装之后,如果尝试运行 .NET 5 应用程序或 dotnet
命令则会报错:
无法启动此程序,因为计算机中丢失 api-ms-win-crt-runtime-l1-1-0.dll。尝试重新安装该程序以解决此问题。
即便我们按照提示重新安装,也无法解决这个问题。
故障排查
根据错误提示,笔者在微软的网站上找到了相关的文档:Install .NET on Windows
文档中描述,在 Windows 7 系统中如果遇到上文所示的错误,则说明需要安装以下组件:
C++ 2015 可以很容易的下载到,但 KB2533623 已经不提供下载了:We’re sorry, this download is no longer available.
即便如此,笔者还是在其他地方找到了 KB2533623 补丁适配 Windows 7 系统的 msu 文件。在完成安装之后需要重启下操作系统,之后便可正常使用:
KB2533623 补丁文件下载
链接:https://pan.baidu.com/s/1Z8ifuzK10AG6l-GXJTC0Sg
提取码:pyma
替代方案
本文发布后收到了不少读者的反馈,有网友表示,在 GitHub 上有人也遇到了同样的问题:Security update KB2533623 no longer available 。该网友同时指出,可以用 KB3063858 来替代 KB2533623 ,该更新包可以正常下载:
32-bit: https://www.microsoft.com/en-us/download/details.aspx?id=47409
64-bit: https://www.microsoft.com/en-us/download/details.aspx?id=47442