Computer >> 컴퓨터 >  >> 시스템 >> Windows Server

Windows '병렬 구성이 올바르지 않아 응용 프로그램을 시작하지 못했습니다' 오류 해결 방법

Windows에서 앱을 실행할 때 병렬 구성이 올바르지 않기 때문에 응용 프로그램을 시작하지 못했습니다(The application has failed to start because its side-by-side configuration is incorrect) 오류가 표시된다면, 프로그램 실행에 필요한 종속성이 누락되어 시작할 수 없다는 의미입니다. 즉, 앱을 실행하는 데 필요한 구성 요소가 손상되었거나 컴퓨터에 설치되어 있지 않은 것입니다. 이 글에서는 응용 프로그램의 매니페스트 파일을 확인하고, 앱이 정상적으로 시작되도록 설치해야 하는 라이브러리나 패키지를 찾아 종속성 문제를 해결하는 방법을 소개합니다.

이 문제는 대부분 휴대용(portable) 앱이나 게임을 실행할 때 발생합니다. 이런 프로그램들은 Microsoft Visual C++ 재배포 패키지(vc_redist.x86.exe, vc_redist.x64.exe)의 라이브러리를 사용하는데, 해당 라이브러리가 설치되어 있지 않거나 손상된 경우가 많기 때문입니다. 하지만 무분별하게 모든 Visual C++ 재배포 패키지를 설치하기 전에, 매니페스트 파일을 통해 앱에 정확히 어떤 라이브러리가 필요한지 먼저 확인해 보겠습니다.

Windows에서 앱 매니페스트 분석 방법

Windows SDK가 설치되어 있지 않은 컴퓨터에서 makeappx.exe 응용 프로그램을 실행해 보겠습니다. Makeappx.exe는 *.msix, *.appx, *.msixbundle, *.appxbundle 형식의 UWP 앱 패키지를 생성하는 도구입니다.

예상대로 이 도구는 실행되지 않고 다음과 같은 오류를 반환합니다:

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)에 직접 포함될 수 있습니다.

무료 도구인 Manifest View 또는 Resource Hacker를 사용하면 EXE 파일의 매니페스트를 확인할 수 있습니다. Resource Hacker로 앱 매니페스트를 열람하고 편집하는 방법은 'UAC 권한 상승 프롬프트 억제 방법' 관련 글에서 소개한 바 있습니다.

아래 그림에서 볼 수 있듯이, 앱 매니페스트의 Dependency 섹션에는 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...

그런 다음 문제가 되는 앱을 실행합니다. '병렬 구성이 올바르지 않기 때문에 응용 프로그램을 시작하지 못했습니다' 오류가 나타나면, sxstrace 창에서 ENTER 키를 눌러 추적을 중지합니다.

수집된 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.

이후 Google 등의 검색 엔진에서 해당 DLL에 대한 정보를 찾아보면 됩니다. 이 예제의 경우 라이브러리 파일은 Windows SDK(Redist.x86)에 포함된 MSIX Toolkit의 일부입니다. 찾아낸 구성 요소를 다운로드하여 설치하면 앱이 정상적으로 시작됩니다.

Microsoft Visual C++ 재배포 패키지 문제 해결

대부분의 경우 '병렬 구성이 올바르지 않음' 오류는 Microsoft Visual C++ 재배포 패키지 라이브러리가 누락되었거나 손상된 것과 관련이 있습니다.

이 경우 sxstrace 로그와 앱 매니페스트 양쪽 모두에서 다음과 같은 오류가 나타납니다:

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 버전이 필요하다는 뜻입니다. 간단히 검색해 보면 이것이 Microsoft Visual C++ 2008 재배포 패키지임을 알 수 있습니다. Microsoft 공식 웹사이트에서 해당 버전을 다운로드하여 설치하면 됩니다.

같은 방식으로 Version 필드의 값을 통해 다른 Microsoft Visual C++ 버전도 식별할 수 있습니다:

재배포 패키지버전
Microsoft Visual C++ Redistributable for Visual Studio 2015, 2017, 201914.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에서 시스템 파일 복구

앱 시작 오류가 Windows 시스템 파일 중 하나와 관련이 있다고 판단되면, SFC와 DISM 도구를 사용하여 Windows 시스템 이미지 파일과 구성 요소를 검사하고 복구하세요:

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