Приложению не удалось запуститься из-за неправильной конфигурации Side-by-Side

Если вы видите сообщение «The application has failed to start because its side-by-side configuration is incorrect» при попытке запустить приложение в Windows, это означает, что программа не может запуститься из-за отсутствия зависимостей. Компоненты, необходимые для запуска приложения, повреждены или не установлены на компьютере. В этой статье мы покажем, как проверить файл манифеста приложения и устранить зависимости, найдя библиотеку или пакет, которые необходимо установить для корректного запуска приложения.

Чаще всего проблема возникает при запуске портативных приложений или игр, поскольку они используют библиотеки Microsoft Visual C++ Redistributable (vc_redist.x86.exe, vc_redist.x64.exe), которые не установлены на компьютере или повреждены. Однако прежде чем не задумываясь устанавливать все версии Visual C++ Redistributable на свой компьютер, попробуем выяснить, какая именно библиотека нужна приложению, по его файлу манифеста.

Ошибка: "Приложению не удалось запуститься, поскольку конфигурация side by side неверна" при запуске программы в Windows

Как проанализировать манифест приложения в Windows?

Давайте попробуем запустить makeappx.exe приложение на компьютере, на котором не установлен Windows SDK.

Makeappx.exe позволяет создавать пакеты приложений UWP в форматах *.msix, *.appx, *.msixbundle или *.appxbundle.

Очевидно, что инструмент не запускается и возвращает ошибку:

Program 'makeappx.exe' failed to run: The application has failed to start because its side-by-side configuration is incorrect. Please see the application event log or use the command-line sxstrace.exe tool for more detail
+ CategoryInfo : ResourceUnavailable: (:) [], ApplicationFailedException
+ FullyQualifiedErrorId : NativeCommandFailed

Приложение не удалось запустить, потому что его конфигурация side-by-side неверна - ResourceUnavailable

Обратите внимание на ResourceUnavailable сообщение прямо указывает на то, что приложению не хватает чего-то для запуска.

Список компонентов и библиотек, необходимых приложению для работы, указывается в манифесте приложения. Манифест приложения может храниться в виде отдельного XML-файла или быть встроенным непосредственно в исполняемый файл приложения (.exe).

Просмотреть манифест EXE-файла можно с помощью бесплатной программы Просмотр манифеста или Хакер ресурсов инструмент.

Мы показали, как использовать Resource Hacker для просмотра и редактирования манифеста приложения, в статье Как подавить запрос на повышение уровня UAC?

Как вы можете видеть, в Зависимость Раздел в манифесте приложения содержит ссылку на Microsoft.Windows.Build.Appx.AppxPackaging.dll. Приложение не может работать без этого библиотечного файла.

файл манифеста приложения - dependentAssembly

Вы также можете отследить запуск приложения с помощью SxSTrace.exe.

Откройте новую командную строку и запустите сбор данных с помощью команды :

sxstrace.exe Trace -logfile:c:\tmp\makeapp_sxtracesxs.etl

Tracing started. Trace will be saved to file c:\tmp\makeapp_sxtracesxs.etl.
Press Enter to stop tracing...

Затем запустите проблемное приложение. Когда на экране появится сообщение «The application has failed to start because its side-by-side configuration is incorrect» появится ошибка, остановите трассировку, нажав ENTER в окне sxstrace.

создание трассировки с помощью sxstrace

Преобразуйте файл журнала ETL в более удобный формат TXT:

sxstrace.exe Parse -logfile:c:\tmp\makeapp_sxtracesxs.etl -outfile:c:\tmp\makeapp_sxtracesxs.txt

Откройте полученный TXT-файл в Блокноте (или любом другом текстовом редакторе) и найдите строки с ошибками. Вы также можете выполнить поиск ошибок в текстовом файле с помощью PowerShell:

Get-Content c:\tmp\makeapp_sxtracesxs.txt | Where-Object { $_.Contains("ERROR") }

Как видите, ошибка указывает на тот же DLL-файл, что и в манифесте приложения:

INFO: End assembly probing.
ERROR: Cannot resolve reference Microsoft.Windows.Build.Appx.AppxPackaging.dll,version="0.0.0.0".
ERROR: Activation Context generation failed.

ОШИБКА: Невозможно разрешить ссылку

Кроме того, ошибки зависимостей SideBySide можно проанализировать с помощью журналов событий. При возникновении ошибки в журнал приложений записывается следующее событие:

EventID: 33
Source: SideBySide

В описании ошибки упоминается файл библиотеки или компонент, необходимый для запуска приложения.

Activation context generation failed for "C:\ps\test\makeappx.exe". Dependent Assembly Microsoft.Windows.Build.Appx.AppxPackaging.dll,version="0.0.0.0" could not be found. Please use sxstrace.exe for detailed diagnosis.

eventid 33 SideBySide - Не удалось сгенерировать контекст активации

Затем откройте Google и найдите информацию об этой dll. В моем примере файл библиотеки является частью MSIX Toolkit из Windows SDK (Redist.x86). Загрузите и установите найденные компоненты, чтобы приложение запустилось корректно.

Устранение неполадок с Microsoft Visual C++ Redistributable

В большинстве случаев ошибка «некорректная конфигурация side-by-side» связана с отсутствующей или поврежденной версией библиотеки Microsoft Visual C++ Redistributable.

В этом случае следующая ошибка появится как в журнале sxstrace, так и в манифесте приложения:

Error: Cannot resolve reference ERROR: Cannot resolve reference Microsoft.VC90.MFC, processorArchitecture="amd64", publicKeyToken="1fc8b3b9a1e18e3b", type="win32",version="9.0.21022.8".

Из этого сообщения мы получаем следующую информацию: приложению требуется x64-битная версия Microsoft.VC90.MFC 9.0.21022. Быстрый поиск в Google показывает, что это Microsoft Visual C++ 2008 Redistributable. Загрузите и установите эту версию MVC с сайта Microsoft.

Аналогичным образом можно получить и другие версии Microsoft Visual C++ по их значениям в строке Версия поле:

Microsoft Visual C++ Redistributable для Visual Studio 2015, 2017 и 2019. 14.0.x или новее
Microsoft Visual C++ 2013 Redistributable 12.0.x
Microsoft Visual C++ 2012 Redistributable 11.0.x
Microsoft Visual C++ 2010 Redistributable 10.0.x
Microsoft Visual C++ 2008 Redistributable 9.0.x

Восстановление системных файлов в Windows

Если вы понимаете, что ошибка запуска приложения связана с одним из системных файлов Windows, проверьте и восстановите файлы и компоненты образа системы Windows с помощью SFC и DISM:

sfc /scannow
DISM.exe /Online /Cleanup-image /Scanhealth
DISM.exe /Online /Cleanup-image /Restorehealth

Добавить комментарий

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