* 出现 0x800F081F,原因包括但不限于:路径输入错误、64 位系统指定了 32 位镜像的源(反过来同样)、源路径所属镜像所包含系统的版本号与当前系统的不等(参考:Operating System Version )。
0x800F081F、0x800F0906
https://support.microsoft.com/help/3005628
https://grylewicz.pl/wlaczanie-funkcji-net-3-5-i-blad-0x800f081f-w-windows-8-1/
在没有其他问题的情况下,给打过 KB2966827 的 Windows 8 和 Windows Server 2012 ,或者打过 KB2966828 的 Windows 8.1 和 Windows Server 2012 R2 第一次安装 .NET Framework 3.5 时可能会出错:
解决方法:打上对应操作系统版本的 KB3005628,记得要“以管理员身份运行”;
提示:KB3005628 的作用是删除 KB2966827 或 KB2966828;从 Update for the .NET Framework 3.5 on Windows 8, Windows 8.1, Windows Server 2012, and Windows Server 2012 R2 下载的“ndpfixit-kb3005628-XNN.exe”与 Search results for "3005628" - Microsoft Update Catalog 下载的“ndpfixit-kb3005628-xNN_*SHA-1*.exe”并不是同一个文件,前者运行时会弹出命令行窗口并立刻消失(不清楚是否有信息被打印出来),后者没有任何窗口,两者运行后不弹出任何提示,但一段时间后能发现 KB2966827 或 KB2966828 被删除了,看上去两者的功能是相同的。
* 使用 Beyond Compare 简单做了个对比,可以看出“ndpfixit-kb3005628-XNN.exe”是 CLI,“ndpfixit-kb3005628-xNN_*SHA-1*.exe”是 GUI ,其他的区别可能就需要去做逆向之类的才能发现了:
关于错误 0x800F0922
这个错误并不仅在 .NET Framework 的安装中出现,而是一个通用的 Windows Update 错误,但你仍然可以先跟着这个教程做尝试,注意要找到“0x800F0922”那一段:https://support.microsoft.com/help/2734782#section-2
不奏效的话,你还可以看着这个教程做尝试:https://support.microsoft.com/help/10164
还不行的话,看看 Microsoft TechNet 社区里的朋友们都做了哪些尝试,跟着试一试:https://social.technet.microsoft.com/Forums/en-US/d689ea30-0054-4691-88df-1dac5549ffe2
也可以看看 Mobile01 论坛里的讨论:https://www.mobile01.com/topicdetail.php?f=300&t=5542860、https://www.mobile01.com/topicdetail.php?f=300&t=5540162。
完成各项初次配置、进入桌面后,重新执行命令,可以成功启用 .NET Framework 3.5。检查日志文件“%SystemRoot%\Logs\dism.log”,关键内容有:
...
DISM Package Manager: PID=3792 TID=1516 Failed to create session classID - waiting for a second and trying again, hr:0x80080005 - CDISMPackageManager::RefreshInstanceAndLock(hr:0x80080005)
...
DISM Package Manager: PID=3792 TID=1516 Failed to create session classID - waiting for a second and trying again, hr:0x80080005 - CDISMPackageManager::RefreshInstanceAndLock(hr:0x80080005)
DISM Package Manager: PID=3792 TID=1516 Failed doing internal initialization - CDISMPackageManager::Initialize(hr:0x80080005)
DISM Provider Store: PID=3792 TID=1516 Failed to call Initialize method on IDismServicingProvider Interface - CDISMProviderStore::Internal_LoadProvider(hr:0x80080005)
DISM Provider Store: PID=3792 TID=1516 Failed to Load the provider: C:\Windows\TEMP\ECE1AB77-A6EB-47DB-AF5B-594D79ED8397\CbsProvider.dll. - CDISMProviderStore::Internal_GetProvider(hr:0x80080005)
...
DISM.EXE: No providers were found that support the command(enable-feature). HRESULT=80070057
...完整日志请查看 dism.log,包含在完成各项初次配置、进入桌面前安装失败的和进入桌面后安装成功的所有内容。
类似的问题:MSU Fails to install with DISM.exe error 87 - Developer Community