Activation context generation failed
이벤트 로그에 다음과 같은 항목이 있습니다.
Log Name: Application
Source: SideBySide
Date: 2017-05-31 오후 9:52:42
Event ID: 33
Task Category: None
Level: Error
Keywords: Classic
User: N/A
Computer: TESTPC
Description:
Activation context generation failed for "c:\program files (x86)\xoreax\incredibuild\TestCRT90.exe". Dependent Assembly Microsoft.VC90.ATL,processorArchitecture="x86",publicKeyToken="1fc8b3b9a1e18e3b",type="win32",version="9.0.30729.1" could not be found. Please use sxstrace.exe for detailed diagnosis.
오류 로그에 나온 "sxstrace.exe"가 낯설지 않습니다. ^^
error MSB6003: SxS DLL 로딩 오류
; https://www.sysnet.pe.kr/2/0/490
원인은 오류 로그에 나온 대로 Microsoft.VC90.ATL,processorArchitecture="x86",publicKeyToken="1fc8b3b9a1e18e3b",type="win32",version="9.0.30729.1" 구성 요소를 찾을 수 없어 발생한 것이므로 다음의 재배포 패키지를 설치해 주면 됩니다.
Microsoft Visual C++ 2008 Feature Pack Redistributable Package (x64)
; https://www.microsoft.com/en-us/download/details.aspx?id=16771
Microsoft Visual C++ 2008 Feature Pack Redistributable Package (x86)
; https://www.microsoft.com/en-us/download/details.aspx?id=10015
Microsoft Visual C++ 2008 Service Pack 1 Redistributable Package ATL Security Update
; https://www.microsoft.com/en-us/download/details.aspx?id=11895
어차피, 로그에 나온 내용인데 이를 sxtrace.exe를 이용해 한번 더 자세하게 확인할 수 있습니다.
방법은, 다음과 같이 관리자 권한의 명령행에서 sxstract.exe를 실행시킨 상태에서,
C:\Windows\System32>SxsTrace Trace -logfile:c:\temp\SxsTrace.etl
Tracing started. Trace will be saved to file c:\temp\SxsTrace.etl.
Press Enter to stop tracing...
문제가 발생한 exe를 실행해 줍니다. 제 글에서는 이벤트 로그에 "c:\program files (x86)\xoreax\incredibuild\TestCRT90.exe"라고 나오는데, 당연히 이것을 실행하면 다음과 같은 식으로 오류가 발생합니다.
C:\Windows\System32>"c:\program files (x86)\xoreax\incredibuild\TestCRT90.exe"
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.
그다음, sxstrace가 실행된 화면에서 "Enter"키를 눌러 추적을 종료합니다.
그럼 sxstrace.etl 파일이 생성되는데, 이를 다음의 명령어로 일반 텍스트 파일로 변환할 수 있습니다.
C:\Windows\System32>SxsTrace Parse -logfile:c:\temp\SxsTrace.etl -outfile:c:\temp\SxsTrace.txt
Parsing log file c:\temp\SxsTrace.etl...
Parsing finished! Output saved to file c:\temp\SxsTrace.txt.
그 내용을 보면, 문제가 발생한 원인을 확실하게 잡아낼 수 있습니다.
Begin Activation Context Generation.
Input Parameter:
Flags = 0
ProcessorArchitecture = Wow32
CultureFallBacks = en-US;en
ManifestPath = c:\program files (x86)\xoreax\incredibuild\TestCRT90.exe
AssemblyDirectory = c:\program files (x86)\xoreax\incredibuild\
Application Config File =
-----------------
INFO: Parsing Manifest File c:\program files (x86)\xoreax\incredibuild\TestCRT90.exe.
...[생략]...
INFO: End assembly probing.
ERROR: Cannot resolve reference Microsoft.VC90.ATL,processorArchitecture="x86",publicKeyToken="1fc8b3b9a1e18e3b",type="win32",version="9.0.30729.1".
ERROR: Activation Context generation failed.
End Activation Context Generation.
[이 글에 대해서 여러분들과 의견을 공유하고 싶습니다. 틀리거나 미흡한 부분 또는 의문 사항이 있으시면 언제든 댓글 남겨주십시오.]