修復:在 Windows 上找不到引用的程序集錯誤 (0x80073701)
在運行 Windows 10/11 的 Windows Server 或台式計算機上添加或刪除功能/角色時,您可能會遇到錯誤:
The referenced assembly could not be found. Error: 0x80073701.

嘗試使用 PowerShell(在本例中為 WSL)添加可選 Windows 功能時會出現類似的錯誤:
Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux
Enable-WindowsOptionalFeature : The referenced assembly could not be found.


此錯誤意味著 Windows 映像中指定組件的源文件丟失或損壞。
在進行故障排除之前,請檢查是否有需要主機重新啟動(狀態為“待重新啟動”)的更新。
dism /online /get-packages /format:table | Select-String "Pending"
如果安裝任何組件或軟件包後需要重新啟動,請執行此操作。
在某些情況下,即使多次重新啟動後,某些軟件包仍處於待重新啟動狀態。嘗試重命名C:WindowsWinsxs待處理.xml文件複製到 Pending.xml.old,然後重新啟動主機。
然後,使用 DISM 驗證 Windows 映像的完整性:
DISM /Online /Cleanup-Image /CheckHealth


如果此命令返回“組件存儲可修復”,請修復它:
DISM /Online /Cleanup-Image /RestoreHealth
然後,檢查Windows系統文件的完整性,並根據需要進行修復(修復後的組件將作為原始文件的來源):
sfc /scannow
如果恢復系統文件後仍未安裝 Windows 功能,請檢查%windir%LogsCBSCBS.log對於錯誤。
推薦閱讀:如何修復 Windows Installer 錯誤 1603:安裝過程中出現致命錯誤
我的 Windows Server 2022 主機上的 CBS 日誌顯示錯誤,指示之前安裝的 KB5012170 更新中缺少系統文件。
CBS Failed to pin deployment while resolving Update: Package_for_KB5012170~31bf3856ad364e35~amd64~~20348.880.1.1from file: (null) [HRESULT = 0x80073701 – ERROR_SXS_ASSEMBLY_MISSING]
在這種情況下,請從 Microsoft 更新目錄手動下載並安裝指定的 Windows 更新。
如果無法從 MSU 文件安裝更新,請提取 MSU 文件並手動將 CAB 更新包添加到 Windows 映像:
解壓 MSU 包:
expand -f:* windows10.0-kb5012170-x64 c:temp
將包添加到在線 Windows 映像:
DISM.exe /Online /Add-Package /PackagePath:c:TempWindows10.0-KB5012170-x64.cab
如果該軟件包無法下載或者更新不適用於您的 Windows 版本,您可以將 Windows 配置為忽略損壞的軟件包
! ! !以下說明不屬於 Microsoft 官方指南。請自行承擔風險,並了解這可能會導致 Windows 映像完全失敗。在進行任何更改之前,我們建議您備份 Windows 映像或創建系統還原點。
- 轉到註冊表項
HKLMSOFTWAREMicrosoftWindowsCurrentVersionComponent Based Servicing - 讓您的帳戶成為此註冊表項的所有者(默認所有者是
TrustedInstaller)並授予自己完全控制權限。

- 找到包含您要忽略的更新包的註冊表項。
- 改變值當前狀態參數為0。這會通知 Windows 服務進程該組件既未安裝也未啟用。在我的示例中,包狀態的先前值是
112(已安裝),所以我將其更改為0(不存在)。

- 恢復註冊表項的原始權限,只為管理員保留只讀訪問權限。
- 重新啟動計算機並確認現在可以成功添加 Windows 功能(角色)
如果 CBS 日誌顯示ERROR_SXS_ASSEMBLY_MISSING對於多個 KB 包,請對每個包執行上述步驟。可以通過使用 Select-String cmdlet 搜索文件來列出 CBS.LOG 中存在 ASSEMBLY MISSING 錯誤的所有包:
Select-String -Path "c:windowslogscbscbs.log" -Pattern "Failed to pin"
如果這不能解決問題,請嘗試使用適用於您的操作系統版本的最新版本的安裝 ISO 映像對當前 Windows 版本執行就地升級。從 Windows 安裝映像運行 setup.exe 並選擇保留個人文件和應用程序選擇更新模式時。


