Не найдена сборка на которую имеется ссылка (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:\Windows\Winsxs\Pending.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%\Logs\CBS\CBS.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:\Temp\Windows10.0-KB5012170-x64.cab

Если скачать пакет нельзя (он не доступен) или пишет, что обновление неприменимо к вашей версии Windows, можно сделать так, чтобы Windows игнорировала поврежденный пакет

!!! Дальнейшие инструкции не являются официальной рекомендацией Microsoft. Вы выполняете их на свой страх и риск, осознавая, что это может привести к полной поломке образа Windows. Рекомендуем создать резервную копию образа Windows перед внесением изменений.
  1. Откройте раздел реестра HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Component 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:\windows\logs\cbs\cbs.log" -Pattern "Failed to pin"

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

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


Предыдущая статья Следующая статья


Комментариев: 0 Оставить комментарий

Оставить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Я не робот( Обязательно отметьте)