安装 .NET Framework 报 0x800B0109 等错误的解决方法
2024-11-26 20:09:36

在 Windows Thin PC 上安装 .NET Framework 4.8 时报错。

错误 0x800B0109

错误消息:已处理证书链,但是在不受信任提供程序信任的根证书中终止。

看上去和数字证书有关。

因为 Windows 7 SP1 (x86) 系统在未安装系统所需补丁的情况下不带此证书,而 Windows 7 SP1 (x64) 系统的最新版带有此证书。
网上找到解决方法说要将 MicrosoftRootCertificateAuthority2011.cer 这个证书添加到受信任的根证书颁发机构中。

错误 0x80096005

此时又出现新的错误:时间戳签名和/或证书无法验证或已损坏。

解决方法:安装 KB2813430 补丁。

绕过 0x800B0109

有人说只用只用安装 KB2813430 补丁就能解决了,并不用导入证书。
我在一个优化了服务程序的系统上测试结果的确是这样。怀疑是禁用某个服务导致安装程序跳过证书验证了。
经过反复试验后发现,同时禁用掉Software ProtectionDNS Client服务的确可以顺利安装 .NET Framework 4.8。
禁用服务前:

禁用服务后:

虽然证书仍然显示异常,但是确实可以安装成功。至于背后的原理我也没有再深究了,也不建议这样绕过。
正常的办法就是按照前面说的两步解决:安装根证书和打补丁。

直接从 .msi 文件安装

后来我发现 .NET Framework 4.8 可以先提取出 .msi 文件再安装,这样就可以跳过前面的验证的步骤了。
运行ndp48-x86-x64-allos-enu.exe /x命令将安装文件提取到指定的目录,然后双击netfx_full_x86.msinetfx_full_x64.msi就可以直接安装了。

相关阅读

解决安装 .NET Framework 组件时会遇到的若干问题
安装net-framework4.8弹出“已处理证书链,但是在不受信任提供程序信任的根证书中终止”错误的解决方法