Не найдена сборка на которую имеется ссылка (0x80073701) при установке компонентов Windows

Не найдена сборка на которую имеется ссылка (0x80073701) при установке компонентов Windows

При установке или удалении компонентов или ролей в Windows Server или десктопных версиях Windows 10/11 может появится ошибка:

The referenced assembly could not be found. Error: 0x80073701.
Не найдена сборка, на которую имеется ссылка. Ошибка: 0x80073701.

Ошибка установки компонентов: Не найдена сборка, на которую имеется ссылка. Ошибка: 0x80073701

Аналогичная ошибка при попытке установить компонент (WSL в этом случае) с помощью PowerShell:

Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux

Enable-WindowsOptionalFeature : The referenced assembly could not be found.

Enable-WindowsOptionalFeature : The referenced assembly could not be found

Данная ошибка указывает на то, что файлы указанного компонента в образе Windows отсутствуют или повреждены.

Прежде чем продолжить диагностику, проверьте, есть ли обновления, которые требуют перезагрузки хоста (статус
Pending Reboot
):

dism /online /get-packages /format:table | Select-String "Pending"

Если после установки каких-то компонентов или пакетов нужно выполнять перезагрузку, сделайте это.

Бывает, что некоторые пакеты остаются в статусе Pending Reboot даже после перезагрузки (неоднократной) сервера. В этом случае попробуйте переименовать файл C:WindowsWinsxsPending.xml в Pending.xml.old и перезагрузите хост.

Затем проверьте целостность образа Windows с помощью команды DISM:

DISM /Online /Cleanup-Image /CheckHealth

DISM /Online /Cleanup-Image /CheckHealth - The component store is repairable

Если команда вернет The component store is repairable, выполнить восстановление хранилища компонентов:

DISM /Online /Cleanup-Image /RestoreHealth

После этого восстановите целостность системных файлов (восстановленное хранилище будет использовать в качестве источника исходных файлов):

sfc /scannow

Если после восстановления системных файлов, компоненты Windows также не устанавливаются, проверьте ошибки в логе
%windir%LogsCBSCBS.log
.

В моем случае на 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]

В этом случае нужно вручную скачать указанное обновление Windows из каталога обновлений Microsoft и установить MSU обновление на проблемной системе.

Если обновление отказывается устанавливаться из MSU файла, нужно распаковать его и установить в образ Windows в виде CAB пакета:

Распаковать 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 перед внесением изменений.
  1. Откройте раздел реестра
    HKLMSOFTWAREMicrosoftWindowsCurrentVersionComponent Based Servicing
  2. Назначьте себя владельцем ветки (владелец по умолчанию – TrustedInstaller) и предоставьте себе полный права на все вложенные разделы Сменить владельца ветки реестра с TrustedInstaller
  3. Найдите ветку реестра с пакетом, который нужно игнорировать
  4. Измените значение параметра CurrentState на 0. Это указывает системе обслуживания Windows, что данный компоненте не установлен или не активен.

    В нашем примере предыдущее значение состояния пакета
    112
    (Installed), мы изменили на
    0
    (Absent).

    Изменить значение параметра реестра пакета CurrentState на 0

  5. Верните исходные права на ветку реестра, оставив для администратора только ReadOnly.
  6. Перезагрузите компьютер и проверьте, что компоненты (роли) Windows теперь добавляются успешно.
Если в логе CBS ошибка
ERROR_SXS_ASSEMBLY_MISSING
встречается для нескольких пакетов, возможно придется выполнить указанные действия для каждого из них. Все пакеты с ошибками из лога CBS.LOG можно вывести, выполнив поиск в файле с помощью Select-String:

Select-String -Path "c:windowslogscbscbs.log" -Pattern "Failed to pin"

Если и это не помогло, попробуйте выполнить In-place обновление текущего билда Windows с помощью последней версии установочного ISO образа с вашей редакцией ОС. Запустите мастер setup.exe с установочного образа Windows и при выборе режима обновлении, выберите Keep personal files and apps.

Выполнить in-place upgrade билда Windows с сохранением личных данных и установленных приложений

Windows Server 2022
Не найдена сборка на которую имеется ссылка (0x80073701) при установке компонентов Windows