Win10 添加或删除功能时报错:0x80073701,找不到引用的汇编 (ERROR_SXS_ASSEMBLY_MISSING)

发布时间 2023-11-24 18:38:20作者: Dolphinsimon

问题描述:

当通过控制面板或DISM命令或PowerShell命令Enable-WindowsOptionalFeature修改Windows功能时,可能会遇到此报错,导致功能修改失败。

关于这个问题的来源,英文版的错误信息很明确:ERROR_SXS_ASSEMBLY_MISSING,有SXS组件找不到,中文机翻痕迹明显,压根看不懂是啥意思。

如果你是添加系统组件的时候遇到这个问题,可以尝试卸载一个已有的系统组件排查是否是网络问题,如果移除已有的组件也会报错,那么就是本地系统组件有损坏了,需要修复。

常规的解决方案:

SFC /Scannow
DISM /Online /Cleanup-Image /ScanHealth
DISM /Online /Cleanup-Image /CheckHealth
DISM /Online /Cleanup-Image /RestoreHealth

如果运行以上命令能查找到错误,并且能够成功修复,恭喜你,问题大概就已经解决了;如果检查不出问题,请继续往下看。

这个时候你需要检查CBS log文件,这个文件的完整路径是"C:\Windows\Logs\CBS\CBS.log",在这个文件内,可以看到修改系统功能操作失败的日志。
用文本编辑器打开这个文件后,直接搜索关键字 ERROR_SXS_ASSEMBLY_MISSING,你应该能够搜索到类似下面的错误信息:

CBS Failed to pin deployment while resolving Update: Package__for_KB***~ from file: (null) [HRESULT = 0x80073701 - ERROR_SXS_ASSEMBLY_MISSING]

KB*******这个补丁的编号就是我们需要的信息,有了错误补丁编号,打开注册表编辑器,定位到如下位置:
HKLM\Software\Microsoft\Windows\CurrentVersion\ComponentBasedServicing\Packages
搜索补丁编号,并且把所有匹配的Key全部删除。

操作到这里,问题就已经修复了,我们的操作简单粗暴,就是把丢失的补丁信息直接删除,既然这个补丁不存在我们把它的记录删除,直接不管它就行了。
这样一同操作下来你就可以正常添加/删除系统功能了。