在 Windows Thin PC 上安装 .NET Framework 4.8 时报错。
错误 0x800B0109
错误消息:已处理证书链,但是在不受信任提供程序信任的根证书中终止。
看上去和数字证书有关。
因为 Windows 7 SP1 (x86) 系统在未安装系统所需补丁的情况下不带此证书,而 Windows 7 SP1 (x64) 系统的最新版带有此证书。
网上找到解决方法说要将 MicrosoftRootCertificateAuthority2011.cer 这个证书添加到受信任的根证书颁发机构
中。
错误 0x80096005
此时又出现新的错误:时间戳签名和/或证书无法验证或已损坏。
解决方法:安装 KB2813430 补丁。
绕过 0x800B0109
有人说只用只用安装 KB2813430 补丁就能解决了,并不用导入证书。
我在一个优化了服务程序的系统上测试结果的确是这样。怀疑是禁用某个服务导致安装程序跳过证书验证了。
经过反复试验后发现,同时禁用掉Software Protection
和DNS Client
服务的确可以顺利安装 .NET Framework 4.8。
禁用服务前:
禁用服务后:
虽然证书仍然显示异常,但是确实可以安装成功。至于背后的原理我也没有再深究了,也不建议这样绕过。
正常的办法就是按照前面说的两步解决:安装根证书和打补丁。
直接从 .msi 文件安装
后来我发现 .NET Framework 4.8 可以先提取出 .msi 文件再安装,这样就可以跳过前面的验证的步骤了。
运行ndp48-x86-x64-allos-enu.exe /x
命令将安装文件提取到指定的目录,然后双击netfx_full_x86.msi
或netfx_full_x64.msi
就可以直接安装了。
相关阅读
解决安装 .NET Framework 组件时会遇到的若干问题
安装net-framework4.8弹出“已处理证书链,但是在不受信任提供程序信任的根证书中终止”错误的解决方法