Side-by-side 오류는 프로그램 실행에 필요한 Visual C++ 런타임 어셈블리가 없거나 손상되었을 때 발생하며 해당 프로그램이 요구하는 Visual C++ 재배포 가능 패키지를 설치하면 실행됩니다.
다만 Visual C++ 재배포 가능 패키지는 여러 버전으로 나뉘어 있어, 어떤 어셈블리가 빠졌는지부터 sxstrace.exe로 확인해야 불필요한 수고를 줄일 수 있습니다.
일부 글에서 .NET Framework 재설치를 언급하는데, 이 오류와 직접 관련이 없으며 Visual C++ 재배포 가능 패키지 우무, 오류를 중점으로 체크해야 합니다.
Side-by-side 구성이 잘못되어 응용 프로그램을 시작하지 못했습니다 오류의 원인
| 원인 | 증상 | 해결 |
|---|---|---|
| Visual C++ 런타임 어셈블리 누락 | 특정 프로그램 하나만 실행 실패 | 해당 버전의 Visual C++ 재배포 패키지 설치 |
| 어셈블리 버전 불일치, 손상 | 이벤트 뷰어에 SideBySide 오류 기록 | sxstrace로 버전 특정 후 재설치 |
| 설치 파일 손상 | 설치 직후부터 실행 실패 | 프로그램 완전 제거 후 재설치 |
| 시스템 파일 손상 | 여러 프로그램에서 동시 발생 | sfc, DISM으로 복구 |
Side-by-side 오류의 원인은 프로그램이 요구하는 특정 버전의 어셈블리와 시스템에 설치된 어셈블리가 어긋날 때로 좁혀집니다. 증상이 나타나는 범위를 보면 원인을 먼저 가릴 수 있습니다.
한 프로그램에서만 오류가 뜬다면 그 프로그램이 요구하는 런타임 문제이고, 여러 프로그램이 한꺼번에 막힌다면 시스템 구성 요소 저장소가 손상됐을 가능성이 큽니다. 이 구분이 아래 순서를 정합니다.
1. sxstrace.exe로 누락된 어셈블리 찾기
무작정 재배포 패키지를 전부 설치하기 전에, 정확히 어떤 어셈블리가 빠졌는지 확인하면 한 번에 해결됩니다. Windows는 side-by-side 로딩 과정을 기록하는 진단 도구 sxstrace.exe를 기본 제공합니다.

추적을 시작하려면, 시작 버튼을 클릭하고 cmd를 검색해 관리자 권한으로 실행 선택으로 명령 프롬프트를 엽니다.
sxstrace trace -logfile:sxs.etl
이 상태에서 Side-by-side 오류가 나던 프로그램을 다시 실행해 증상을 재현합니다. 오류 창이 뜨면 명령 프롬프트로 돌아와 추적을 멈추고, 기록을 텍스트로 저장합니다.
sxstrace parse -logfile:sxs.etl -outfile:sxs.txt
sxs.txt 파일 경로는 C:\Windows\System32 또는 %userprofile% 사용자 폴더 이며 명령 프롬프트가 시작되는 폴더에 생성됩니다.
생성된 sxs.txt를 열면 Microsoft.VC90.CRT 같은 어셈블리 이름과 요구 버전(예: 9.0.21022.8)이 그대로 적혀 있습니다. 여기서 VC90은 Visual C++ 2008, VC100은 2010, VC140은 2015~2022 계열을 뜻하므로, 해당 Visual C++ 재배포 가능 패키지를 설치해야 합니다.
sxs.txt 로그 파일의 위치가 불편한 경우에는 아래 명령어처럼 바탕 화면 폴더로 이동 후 명령어를 실행하면 바탕 화면 폴더에 로그가 저장됩니다.
cd %userprofile%\Desktop
sxstrace trace -logfile:sxs.etl
sxstrace parse -logfile:sxs.etl -outfile:sxs.txt

로그 없이 원본 오류만 빠르게 보려면, 이벤트 뷰어를 실행한 다음, Windows 로그 > 응용 프로그램에 진입합니다. 오류 등급에서 원본이 SideBySide인 항목을 열면 누락된 어셈블리와 버전이 같이 표시됩니다.
VC 계열 어셈블리 이름을 확보했다면 2번으로 바로 넘어가면 됩니다. 반대로 로그가 비어 있거나 VC와 무관한 어셈블리가 찍혔다면, 런타임보다 설치 파일이나 시스템 쪽 문제일 확률이 높으니 3번과 4번을 먼저 점검합니다.
2. Visual C++ 재배포 가능 패키지 설치하기
sxstrace로 확인한 버전에 맞춰 Visual C++ 재배포 가능 패키지를 설치하면 Side-by-side 오류를 해결할 수 있습니다.
2015~2022 버전은 하나로 통합돼 마이크로소프트 공식 배포 페이지에서 vc_redist.x64.exe와 vc_redist.x86.exe를 내려받습니다. 2005, 2008, 2010, 2012, 2013 계열을 요구하는 구형 프로그램은 해당 연도 패키지를 개별로 설치합니다.
참고 : Microsoft Visual C++ Redistributable 모든 버전 설치 방법
64비트 Windows를 쓰더라도 프로그램이 32비트로 빌드됐다면 vc_redist.x86.exe가 있어야 실행됩니다. x64만 설치하고 오류가 그대로인 사례 대부분이 여기에 걸립니다. 두 아키텍처를 모두 설치해 두면 이 경우를 함께 덮습니다.
설치 도중 “이미 설치되어 있습니다” 메시지가 뜨면, 같은 화면의 복구 단추로 손상된 파일을 다시 씁니다. 설치가 끝나면 시스템을 재시작해 어셈블리 캐시를 반영합니다.
프로그램 하나만 막혔던 경우라면 여기서 대부분 해결됩니다. 재배포 패키지를 맞게 설치했는데도 같은 오류가 이어진다면, 이번에는 프로그램 설치 파일 자체의 손상을 의심합니다.
3. 문제 프로그램 완전 재설치하기
설치 직후부터 오류가 났다면 프로그램의 설치 파일 자체가 손상됐을 가능성이 높습니다. 이 경우 재배포 패키지를 손봐도 소용이 없으므로 프로그램을 지우고 다시 설치합니다.

프로그램을 제거하려면, 설정 > 앱 > 설치된 앱에 진입합니다. 목록에서 해당 프로그램을 찾아 제거한 뒤, 설치 폴더에 남은 파일을 함께 지웁니다.
제거가 끝나면 프로그램 공식 배포처에서 최신 설치 파일을 다시 내려받아 설치합니다. 내려받은 파일이 중간에 끊겼을 수 있으니, 기존 파일을 재사용하지 않고 새로 받아 설치합니다.
재설치 후에도 Side-by-side 오류가 남고, 다른 프로그램까지 함께 실행되지 않는다면 문제는 개별 프로그램을 벗어난 것입니다. 이때는 마지막 단계로 시스템 파일을 점검합니다.
4. 시스템 파일 복구하기
여러 프로그램에서 동시에 side-by-side 오류가 뜬다면 개별 런타임이 아니라 Windows 구성 요소 저장소가 손상되었다는 신호입니다. 이때는 시스템 파일 검사로 손상된 파일을 되돌립니다.
관리자 권한 명령 프롬프트에서 구성 요소 저장소를 먼저 복구하고, 이어서 시스템 파일을 검사합니다.
DISM /Online /Cleanup-Image /RestoreHealth
sfc /scannow
DISM을 sfc보다 먼저 실행하는 이유는, sfc가 참조하는 원본이 구성 요소 저장소에 들어 있기 때문입니다.
저장소가 손상된 상태에서 sfc만 돌리면 복구 원본까지 오염돼 있어 “복구하지 못했습니다”로 끝납니다. DISM으로 저장소를 정상화한 다음 sfc를 돌려야 손상 파일이 실제로 교체됩니다. 두 명령이 끝나면 시스템을 재시작합니다.
마치며
Side-by-side 오류는 결국 프로그램이 요구하는 런타임 어셈블리와 시스템에 깔린 어셈블리의 버전이 맞지 않아 생깁니다.
하나의 프로그램만 문제가 생겼는지, 여러 프로그램이 함께 막혔는지에 따라 재배포 런타임 문제와 시스템 손상으로 나눠 생각해볼 수 있으며 재배포 패키지를 무작정 몰아 설치하기보다, sxstrace로 빠진 어셈블리를 한 번 특정하고 그 버전만 설치하는 순서대로 진행하면 오류 없이 해결할 수 있습니다.
자주 묻는 질문
.NET Framework를 설치하면 side-by-side 오류가 해결되나요?
대부분 관련이 없습니다. side-by-side 오류는 Win32 어셈블리, 주로 Visual C++ 런타임을 불러오지 못해 생기고, .NET 런타임 문제는 “.NET Framework 초기화 오류” 같은 별도 메시지로 나타납니다. sxstrace 로그에 VC 계열 어셈블리가 찍혀 있다면 .NET Framework 설치는 증상을 바꾸지 못합니다.
VisualCppRedist AIO 같은 일괄 설치 도구를 써도 되나요?
모든 연도의 재배포 패키지를 한 번에 까는 도구라 급할 때는 쓸 수 있습니다. 다만 어떤 버전이 실제 원인이었는지 남지 않아, 나중에 다른 프로그램에서 같은 오류가 날 때 다시 처음부터 진단해야 합니다. 원인을 명확히 남기려면 sxstrace로 버전을 확인한 뒤 해당 패키지만 설치합니다.
패키지를 설치했는데도 재부팅 전까지 오류가 계속 뜹니다.
새로 설치한 어셈블리는 side-by-side 캐시에 등록된 뒤에야 프로그램이 참조합니다. 등록이 끝나기 전이라면 같은 오류가 이어질 수 있으므로, 설치 직후 시스템을 재시작하고 다시 실행합니다.



