Если при запуске программы в Windows вы получаете ошибку “ Не удалось запустить приложение, поскольку его параллельная конфигурация неправильна
/ The application has failed to start because its side-by-side configuration is incorrect
”, значит программа не может запуститься из-за отсутствующих файлов зависимостей. Компоненты, нужные для запуска этой программы, на компьютере не установлены или повреждены. В этой статье мы рассмотрим, как выполнить проверить манифест приложениями разрешить зависимости, определив библиотеку или пакет, которые нужно установить для корректного запуска программы.
Попробуем запустить утилиту makeappx.exe
на компьютере, на котором не установлен Windows SDK.
Утилита, естественно не запускается с ошибкой:
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_x000D_+ CategoryInfo : ResourceUnavailable: (:) [], ApplicationFailedException_x000D_+ FullyQualifiedErrorId : NativeCommandFailed
Обратите внимание на сообщение ResourceUnavailable , оно явно указывает, что программе чего-то не хватает для запуска.
Список компонентов и библиотек, которые нужны приложению для запуска указывается в манифесте приложения. Манифест приложения может хранится в виде отдельного XML файла или быть встроен непосредственно в exe файл приложения.
Вы можете просмотреть манифест exe файла с помощью бесплатной утилиты Manifest View или с помощью Resource Hacker .
Как вы видите, в манифесте приложения в секции Dependency есть ссылка на библиотеку Microsoft.Windows.Build.Appx.AppxPackaging.dll . Утилита не может запуститься без этой библиотеки.
Также вы можете выполнить трассировку запуска приложения с помощью утилиты SxSTrace.exe.
Откройте новое окно командной строки и запустите сбор данных, выполнив команду:
sxstrace.exe Trace -logfile:c:tmpmakeapp_sxtracesxs.etl
Tracing started. Trace will be saved to file c:tmpmakeapp_sxtracesxs.etl._x000D_Press Enter to stop tracing...
Теперь запустите проблемное приложение. После появления ошибки “The application has failed to start because its side-by-side configuration is incorrect” остановите трассировку, нажав Enter в окне sxstrace.
Сконвертируйте ETL файл лога в более читаемый txt формат:
sxstrace.exe Parse -logfile:c:tmpmakeapp_sxtracesxs.etl -outfile:c:tmpmakeapp_sxtracesxs.txt
Откройте полученный txt файл в блокноте (или любом другом текстовом редакторе) и найдите в нем строки с ошибками. Также вы можете найти и вывести все строки с ошибками с помощью PowerShell :
Get-Content c:tmpmakeapp_sxtracesxs.txt | Where-Object { $_.Contains("ERROR") }
Как вы видите, ошибка указывает тот же DLL файл, который указан в манифесте программы:
INFO: End assembly probing._x000D_Cannot resolve reference Microsoft.Windows.Build.Appx.AppxPackaging.dll,version="0.0.0.0"._x000D_ERROR: Activation Context generation failed.
Также для анализа зависимостей в ошибках SideBySide можно использовать журнал событий. При появлении такой ошибки в журнал Application записывается событие:
EventID: 33_x000D_Source: SideBySide
В описание ошибки также есть отсылка на файл библиотеки или компонент, которые нужен для запуска приложения.
Activation context generation failed for "C:pstestmakeappx.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.
Теперь открываете Google и ищите в нем информацию по данной dll. В нашем примере эта библиотека входит в MSIX Toolkit из Windows SDK (Redist.x86). Скачайте и установите найденные компоненты для нормального запуска программы.
В большинстве случаев на компьютерах пользователей ошибка “неправильной параллельной конфигурации приложения” связана с отсутствующей или поврежденной версией библиотеки Microsoft Visual C++ Redistributable.
В этом случае в журнале sxstrace и в манифесте приложения будет содержаться ошибка вида:
Ошибка: не удается разрешить ссылку Microsoft.VC90.MFC, processorArchitecture="amd64", publicKeyToken="1fc8b3b9a1e18e3b", ,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 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, выполните проверку и восстановление системных компонентов и файлов с помощью SFC и DISM:
sfc /scannow
DISM.exe /Online /Cleanup-image /Scanhealth
DISM.exe /Online /Cleanup-image /Restorehealth
Клиент удаленного рабочего стола (rdp) предоставляет нам возможность войти на сервер терминалов через консоль. Что…
В VMware Workstation есть несколько способов настройки сети гостевой машины: 1) Bridged networking 2) Network…
Встроенный брандмауэр Windows может не только остановить нежелательный трафик на вашем пороге, но и может…
Вопреки распространенному мнению, отключить IPv6 в Windows Vista и Server 2008 это не просто снять…
Параметры экранной заставки для текущего пользователя можно править из системного реестра, для чего: Запустите редактор…
В этой статье расскажу про возможность просмотра журналов событий из командной строки. Эти возможности можно…