Не удается запустить приложение с ошибкой side-by-side configuration is incorrect

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

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

The application has failed to start because its side-by-side configuration is incorrect ошибка

Анализ манифеста приложения в 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

ResourceUnavailable Не удалось запустить приложение, поскольку его параллельная конфигурация неправильна

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

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

Вы можете просмотреть манифест exe файла с помощью бесплатной утилиты Manifest View или с помощью Resource Hacker.

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

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

просмотр DependencyAssembly в манифесте exe файла приложния

Также вы можете выполнить трассировку запуска приложения с помощью утилиты 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 запуск трассировки приложения в winsxs

Сконвертируйте 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.
Cannot resolve reference Microsoft.Windows.Build.Appx.AppxPackaging.dll,version="0.0.0.0".
ERROR: Activation Context generation failed.

ошибка в sxstrace - Cannot resolve reference

Также для анализа зависимостей в ошибках SideBySide можно использовать журнал событий. При появлении такой ошибки в журнал Application записывается событие:

EventID: 33%MINIFYHTMLe2913202dbc9de435d9e43b4e132329c7%
%MINIFYHTMLe2913202dbc9de435d9e43b4e132329c8%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 Source: SideBySide

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

Исправление ошибок Microsoft Visual C++ Redistributable

В большинстве случаев на компьютерах пользователей ошибка “неправильной параллельной конфигурации приложения” связана с отсутствующей или поврежденной версией библиотеки Microsoft Visual C++ Redistributable.

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

Ошибка: не удается разрешить ссылку Microsoft.VC90.MFC, processorArchitecture="amd64", publicKeyToken="1fc8b3b9a1e18e3b", type="win32",version= "9.0.21022.8".

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

Аналогично, по значению в поле version можно определить и другие версии Microsoft Visual C++:

Microsoft Visual C++ Redistributable for Visual Studio 2015, 2017 и 2019.14.0.x и выше
Microsoft Visual C++ 2013 Redistributable12.0.x
Microsoft Visual C++ 2012 Redistributable11.0.x
Microsoft Visual C++ 2010 Redistributable10.0.x
Microsoft Visual C++ 2008 Redistributable9.0.x

Исправление системных файлов

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

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


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


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

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

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

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