"The application has failed to start because its side-by-side configuration is incorrect
가 표시되는 경우 " 오류는 Windows에서 앱을 시작하려고 할 때 누락된 종속성으로 인해 프로그램을 시작할 수 없음을 의미합니다. 앱 실행에 필요한 구성 요소가 손상되었거나 컴퓨터에 설치되어 있지 않습니다. 이 기사에서는 앱이 올바르게 시작하기 위해 설치할 라이브러리나 패키지를 찾아 애플리케이션의 매니페스트 파일을 확인하고 종속성을 해결하는 방법을 보여줍니다.
휴대용 앱이나 게임을 실행할 때 컴퓨터에 설치되지 않았거나 손상된 Microsoft Visual C++ 재배포 가능 패키지(vc_redist.x86.exe, vc_redist.x64.exe)의 라이브러리를 사용하기 때문에 가장 자주 문제가 발생합니다. 그러나 아무 생각 없이 컴퓨터에 모든 Visual C++ 재배포 가능 버전을 설치하기 전에 매니페스트 파일을 통해 앱에 필요한 라이브러리를 정확히 찾아보려고 합니다.
Windows에서 앱 매니페스트를 분석하는 방법
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 + CategoryInfo : ResourceUnavailable: (:) [], ApplicationFailedException + FullyQualifiedErrorId : NativeCommandFailed
ResourceUnavailable에 유의하세요. 메시지는 앱에 실행할 항목이 없다는 사실을 직접적으로 나타냅니다.
앱을 실행하는 데 필요한 구성 요소 및 라이브러리 목록은 앱 매니페스트에 지정됩니다. 앱 매니페스트는 별도의 XML 파일로 저장하거나 애플리케이션의 실행 파일(.exe)에 직접 포함할 수 있습니다.
무료 매니페스트 보기를 사용하여 EXE 파일 매니페스트를 볼 수 있습니다. 또는 리소스 해커 도구.
UAC 상승 프롬프트를 억제하는 방법 문서에서 Resource Hacker를 사용하여 앱 매니페스트를 보고 편집하는 방법을 보여주었습니다.보시다시피 종속성 앱 매니페스트의 섹션에는 Microsoft.Windows.Build.Appx.AppxPackaging.dll에 대한 참조가 포함되어 있습니다. . 이 라이브러리 파일이 없으면 응용 프로그램이 작동하지 않습니다.
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
” 오류가 나타나면 sxstrace 창에서 ENTER를 눌러 추적을 중지합니다.
ETL 로그 파일을 보다 편리한 TXT 형식으로 변환:
sxstrace.exe Parse -logfile:c:\tmp\makeapp_sxtracesxs.etl -outfile:c:\tmp\makeapp_sxtracesxs.txt
메모장(또는 다른 텍스트 편집기)에서 결과 TXT 파일을 열고 오류가 있는 줄을 찾습니다. PowerShell을 사용하여 텍스트 파일의 오류를 grep할 수도 있습니다.
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.
그런 다음 Google을 열고 이 dll에 대한 정보를 검색합니다. 내 예에서 라이브러리 파일은 MSIX Toolkit의 일부입니다. Windows SDK(Redist.x86)에서. 찾은 구성 요소를 다운로드하여 설치하면 앱이 올바르게 시작됩니다.
Microsoft Visual C++ 재배포 가능 문제 해결
대부분의 경우 "잘못된 병렬 구성" 오류는 Microsoft Visual C++ 재배포 가능 라이브러리의 누락 또는 손상된 버전과 관련이 있습니다.
이 경우 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 재배포 가능임을 알 수 있습니다. . Microsoft 웹사이트에서 이 MVC 버전을 다운로드하여 설치하십시오.
같은 방식으로 버전의 값으로 다른 Microsoft Visual C++ 버전을 얻을 수 있습니다. 필드:
Visual Studio 2015, 2017, 2019.14.0.x 이상용 Microsoft Visual C++ 재배포 가능 패키지Microsoft Visual C++ 2013 Redistributable12.0.xMicrosoft Visual C++ 2012 Redistributable11.0.xMicrosoft Visual C++ 2010 Visual C++ Redistributable 0.20.x Microsoft Visual C++ Redistributable10. 엑스Windows에서 시스템 파일 복구
앱 시작 오류가 Windows 시스템 파일 중 하나와 관련되어 있음을 이해하면 SFC 및 DISM을 사용하여 Windows 시스템 이미지 파일 및 구성 요소를 확인하고 복구합니다.
sfc /scannow
DISM.exe /Online /Cleanup-image /Scanhealth
DISM.exe /Online /Cleanup-image /Restorehealth