이 글을 3줄로 요약하면
· 파일명 끝의 120은 Visual C++ 2013 세대를 뜻합니다. 최신 패키지로는 이 파일이 채워지지 않습니다.
· 그래서 "재배포 패키지는 이미 여러 개 깔려 있는데 왜 안 되냐"는 상황이 자주 생깁니다.
· 원인은 네 갈래입니다. 판별표에서 자기 상황을 찾아 해당 섹션만 처리하면 됩니다.
msvcr120.dll의 120이 알려주는 것
이 세 자리 숫자만 읽으면 어떤 패키지를 받아야 하는지가 정해집니다.
오류창 문구는 대개 "이 프로그램을 시작할 수 없습니다. 컴퓨터에 MSVCR120.dll이 없습니다. 이 문제를 해결하려면 프로그램을 다시 설치해 보십시오"입니다. 여기서 결정적인 정보는 파일명 끝의 숫자 120입니다.
| 파일명 | 필요한 재배포 패키지 |
|---|---|
| msvcr100.dll · msvcp100.dll | Visual C++ 2010 |
| msvcr110.dll · msvcp110.dll | Visual C++ 2012 |
| msvcr120.dll · msvcp120.dll | Visual C++ 2013 ← 이 글 |
| vcruntime140.dll · msvcp140.dll · mfc140u.dll | Visual C++ 2015-2022 |
msvcr120.dll은 Visual C++ 2013(내부적으로 v120 도구 집합)으로 만들어진 프로그램이 쓰는 C 런타임입니다. 문자열 처리, 메모리 할당, 수학 함수처럼 프로그램이 기본적으로 쓰는 기능이 이 안에 들어 있어서, 이 파일이 없으면 프로그램은 시작 화면조차 띄우지 못하고 즉시 종료됩니다.
최신 재배포 패키지를 깔아도 이 오류는 사라지지 않습니다
Microsoft 문서 기준으로 2015 이후 세대만 재배포 파일을 공유합니다. 2013은 그 앞 세대라 별개 패키지로 따로 배포됩니다. 그래서 설치된 앱 목록에 "Visual C++ 2015-2022"가 여러 개 있어도 msvcr120.dll은 채워지지 않습니다. 2013 항목이 있는지를 따로 봐야 합니다.
참고로 Visual Studio 2013은 Microsoft의 지원이 종료된 세대입니다. 다만 다운로드 센터에서 재배포 패키지 자체는 그대로 내려받을 수 있고, 예전에 만들어진 게임·유틸리티가 여전히 이 런타임을 요구하기 때문에 설치할 이유는 남아 있습니다. 지원 종료는 새 보안 업데이트가 나오지 않는다는 뜻이지, 설치가 막혔다는 뜻이 아닙니다.
증상으로 원인 좁히기
언제부터, 어떤 프로그램에서 뜨는지에 따라 볼 섹션이 달라집니다.
| 증상 | 유력한 원인 | 먼저 볼 항목 |
|---|---|---|
| 설치된 앱 목록에 "Visual C++ 2013" 항목이 아예 없다 | 2013 세대 패키지 미설치 | 원인 A → 2013 패키지 설치 |
| 2013 항목이 하나만 보이고, 오래된 게임 하나에서만 오류가 난다 | x86·x64 중 한쪽만 설치됨 | 원인 B → 빠진 비트수 설치 |
| 잘 되던 프로그램인데 다른 소프트웨어를 지운 뒤부터 뜬다 | 공용 패키지 동반 삭제·손상 | 원인 C → 복구 후 재설치 |
| 설치를 마쳤는데 곧 다시 같은 오류가 재발한다 | 백신이 파일을 격리하고 있음 | 원인 D → 보호 기록 확인 |
| 패키지를 다 깔았는데 그 프로그램에서만 계속 뜬다 | 게임·프로그램 폴더 안의 낡은 dll 사본 | 원인 D → 폴더 내 사본 확인 |
| msvcp120.dll이 없다는 오류가 번갈아 뜬다 | 같은 2013 묶음이 통째로 없음 | 원인 A → 한 번에 해결됨 |
판별은 목록의 연도 표기 하나로 시작합니다
Win + I → "앱" → "설치된 앱"에서 Visual C++을 검색했을 때, 항목 이름에 2013이 들어간 것이 있는지만 보면 원인 A인지 아닌지가 갈립니다. 이 글 맨 위 화면이 그 목록입니다.
원인 A2013 재배포 패키지가 없다
최신 윈도우를 새로 설치했다면 이 세대는 대개 빠져 있습니다.
윈도우 11을 새로 설치하면 최신 세대 런타임은 다른 프로그램들이 설치되면서 자연스럽게 채워지지만, 2013 세대는 그것을 요구하는 프로그램을 깔지 않는 한 들어올 일이 없습니다. 오래된 게임이나 예전 유틸리티를 다시 설치했을 때 이 오류가 갑자기 나타나는 이유입니다.
1설치된 앱 목록에서 2013 항목 유무를 확인한다
Win + I → 좌측 "앱" → "설치된 앱" → 검색창에 Visual C++ 입력. 결과에 2013 표기가 없으면 원인 A가 맞습니다. 2015-2022 항목이 아무리 많아도 이 오류와는 무관합니다.
2Microsoft 공식 다운로드 센터에서 2013 패키지를 받는다
아래 참고 문서의 "Visual C++ Redistributable Packages for Visual Studio 2013" 페이지에서 받습니다. 파일명은 vcredist_x64.exe·vcredist_x86.exe입니다. 최신 세대의 vc_redist와 파일명이 다르니 헷갈리지 않게 확인합니다.
364비트 윈도우라면 x64와 x86을 모두 설치한다
두 개를 함께 설치해도 충돌하지 않습니다. 각각 다른 시스템 폴더에 자기 파일을 넣기 때문입니다. 오류가 난 프로그램이 몇 비트인지 모르는 상태라면 둘 다 설치하는 쪽이 확인 단계를 하나 줄여줍니다.
4재시작한 뒤 판정한다
설치 직후 바로 실행하면 같은 창이 한 번 더 뜨는 경우가 있습니다. 재부팅 후에도 뜨는지로 판단합니다.
dll 파일 하나만 내려받아 폴더에 넣는 방법은 쓰지 않습니다
검색 상위에 "msvcr120.dll 다운로드" 사이트가 먼저 뜨지만, 출처를 확인할 수 없는 dll은 안에 무엇이 들어 있는지 알 방법이 없습니다. 게다가 C 런타임은 msvcp120.dll 등 같은 세대 파일들과 짝을 이뤄 동작해서, 하나만 끼워 넣으면 다음 파일에서 다시 막히거나 실행 중 종료됩니다.
이 방법이 안 통하는 경우
설치가 "이미 설치되어 있습니다"로 끝나거나 목록에 항목이 생기지 않는다면 원인 C로 갑니다. 목록에는 정상적으로 생겼는데 특정 프로그램에서만 오류가 남는다면 원인 B의 비트수 문제입니다.
원인 B프로그램과 패키지의 비트수가 다르다
2013 항목이 이미 있는데도 특정 프로그램에서만 뜬다면 여기입니다.
64비트 윈도우는 런타임을 두 벌 보관합니다. 64비트 프로그램은 C:\Windows\System32를, 32비트 프로그램은 C:\Windows\SysWOW64를 봅니다. 이름과 달리 SysWOW64가 32비트용입니다.
2013 세대를 요구하는 프로그램은 상당수가 그 시절에 만들어진 32비트 빌드입니다. 그래서 x64 패키지만 설치한 상태에서는 시스템에 msvcr120.dll이 분명히 있는데도 "없습니다"라는 창이 그대로 뜹니다.
1문제 프로그램이 몇 비트인지 본다
설치 폴더가 C:\Program Files (x86) 아래에 있으면 32비트입니다. 실행이 되는 프로그램이라면 Ctrl + Shift + Esc → "세부 정보" 탭의 아키텍처 열에서도 확인할 수 있습니다.
232비트 프로그램이면 SysWOW64에 파일이 있는지 검색한다
Win + E → 주소창에 C:\Windows\SysWOW64를 붙여넣고 검색창에 msvcr120.dll을 입력합니다. 결과가 없다면 x86 패키지가 빠진 것이 확정됩니다.
3빠진 쪽 패키지를 설치하고 재시작한다
32비트 프로그램이면 vcredist_x86.exe, 64비트 프로그램이면 vcredist_x64.exe입니다.
System32의 파일을 SysWOW64로 복사해 채우지 않습니다
두 파일은 이름만 같고 내부 구조가 다른 별개의 바이너리입니다. 잘못 옮기면 "올바른 Win32 응용 프로그램이 아닙니다" 같은 다른 오류로 바뀌고, 원래 정상이던 64비트 프로그램까지 영향을 받을 수 있습니다.
이 방법이 안 통하는 경우
두 폴더 모두에 파일이 있는데도 오류가 계속된다면 비트수 문제가 아닙니다. 원인 D에서 프로그램 폴더 안의 사본과 백신 격리를 확인합니다.
원인 C패키지가 손상됐거나 함께 지워졌다
잘 쓰던 프로그램이 어느 날부터 안 되기 시작했다면 이쪽입니다.
재배포 패키지는 여러 프로그램이 공유하는 부품이라, 어떤 프로그램을 제거할 때 자기가 설치했던 패키지를 같이 지워버리는 경우가 있습니다. 반대로 제거가 중간에 끊겨 목록에는 남았는데 파일은 사라진 어중간한 상태가 되기도 합니다.
1복구를 먼저 시도한다
설치된 앱 목록에서 2013 항목 우측의 점 세 개 → "수정"을 누르면 복구 / 제거 선택 창이 열립니다. 복구는 설정을 유지한 채 빠진 파일만 다시 씁니다.
2복구가 실패하면 제거 후 다시 설치한다
x86·x64 항목이 둘 다 있으면 둘 다 제거하고 재시작한 뒤, 다운로드 센터에서 받은 설치 파일로 새로 설치합니다. 제거만 하고 멈추면 그 패키지를 쓰던 다른 프로그램도 같은 오류가 나므로 반드시 이어서 진행합니다.
3제거·설치가 계속 실패하면 시스템 쪽을 먼저 본다
시작 버튼 우클릭 → 터미널(관리자)에서 위 순서 그대로 실행합니다. sfc는 구성 요소 저장소의 원본으로 파일을 되돌리는 명령이라, 저장소가 깨져 있으면 고칠 재료가 없습니다. DISM을 먼저 돌리는 이유입니다.
이 방법이 안 통하는 경우
복구·재설치를 마쳤는데 며칠 뒤 같은 오류가 다시 나타난다면 손상이 아니라 무언가가 파일을 계속 치우고 있는 상태입니다. 원인 D로 갑니다.
원인 D파일이 격리됐거나 폴더 안 사본이 막고 있다
"분명히 설치했는데 또 없다"가 반복될 때 확인할 두 가지입니다.
프로그램은 dll을 찾을 때 자기 실행 파일이 있는 폴더를 시스템 폴더보다 먼저 봅니다. 그래서 게임·프로그램 폴더 안에 오래된 msvcr120.dll 사본이 들어 있으면, 시스템에 정상 파일이 있어도 그 낡은 사본이 먼저 읽혀 실패합니다.
또 하나는 보안 프로그램의 격리입니다. 출처가 불분명한 경로에 있는 런타임 dll이나, 크랙·패치 파일과 함께 배치된 dll은 백신이 위협으로 분류해 조용히 치워버리는 일이 있습니다. 이 경우 설치를 아무리 반복해도 며칠 뒤 같은 오류가 돌아옵니다.
1윈도우 보안의 보호 기록에서 격리 여부를 확인한다
Win + I → "개인 정보 및 보안" → "Windows 보안" → "바이러스 및 위협 방지" → 보호 기록에서 최근 항목을 봅니다. msvcr120.dll이나 그 프로그램 폴더 경로가 적힌 기록이 있으면 격리가 원인입니다.
2격리된 파일을 무조건 복원하지 않는다
시스템 폴더의 정품 런타임이 잘못 격리된 것이라면 복원 후 공식 패키지로 다시 설치하면 됩니다. 그러나 게임 폴더나 임시 폴더에 있던 dll이 격리된 것이라면 복원 대신 삭제하고, 공식 패키지로 시스템 폴더에 채우는 쪽이 맞습니다.
3프로그램 폴더 안의 사본을 잠시 비켜둔다
그 프로그램 설치 폴더에서 msvcr120.dll을 검색해 파일이 나오면, 이름 뒤에 .bak을 붙여 잠시 무력화한 뒤 실행해봅니다. 정상 실행되면 그 사본이 범인이었던 것이고, 오류가 그대로면 사본 문제가 아니므로 이름을 되돌립니다.
스팀·런처 게임이면 무결성 검사가 더 빠릅니다
게임 런처의 게임 파일 무결성 확인 기능은 폴더 안의 손상된 파일과 낡은 런타임 사본을 원본으로 되돌려줍니다. 파일을 직접 만지기 전에 이 기능을 먼저 돌리면 되돌리기도 쉽습니다.
이 방법이 안 통하는 경우
격리 기록도 없고 폴더 안 사본도 없다면, 지금 막고 있는 파일이 msvcr120.dll이 아닐 수 있습니다. 아래 7번 섹션에서 이벤트 뷰어로 실제 실패 모듈 이름을 확인합니다.
어느 단계에서 막혔는지 확인하는 법
같은 조치를 반복하지 않으려면 지금 상태를 기록으로 확인해야 합니다.
1이벤트 뷰어에서 실제로 실패한 모듈을 읽는다
Win + R → eventvwr.msc → Windows 로그 → 응용 프로그램에서, 프로그램을 실행한 시각의 오류 항목을 엽니다. 하단 "일반" 탭의 오류 모듈 이름이 msvcr120.dll이 아니라면 지금 막고 있는 것은 다른 파일입니다.
2두 시스템 폴더를 명령 한 줄로 함께 확인한다
한쪽만 나오면 원인 B, 둘 다 "파일을 찾을 수 없습니다"면 원인 A 또는 C, 둘 다 나오는데 오류가 계속되면 원인 D입니다. 이 한 줄로 네 갈래 중 어디인지가 거의 정해집니다.
msvcp120.dll이 함께 뜨는지도 같은 방식으로 확인해두면 좋습니다. 두 파일은 같은 2013 패키지에 함께 들어 있어 한쪽만 없는 상태는 정상이 아닙니다. 한쪽만 있다면 패키지가 온전하지 않다는 신호라 원인 C의 복구로 이어집니다.
자주 묻는 질문
버전 선택·설치 범위·재발에 대한 질문을 모았습니다.
Q.msvcp120.dll이 없다는 오류도 같은 방법인가요?
A.같습니다. msvcr120은 C 런타임, msvcp120은 C++ 표준 라이브러리로 역할은 다르지만 같은 Visual C++ 2013 재배포 패키지에 함께 들어 있어 한 번의 설치로 둘 다 채워집니다.
Q.최신 Visual C++ 재배포 패키지를 깔면 2013도 포함되지 않나요?
A.포함되지 않습니다. Microsoft 문서 기준으로 재배포 파일을 공유하는 범위는 2015 이후 세대입니다. 2013은 그 이전 세대라 별도 패키지로 설치해야 합니다.
Q.지원이 끝난 2013 패키지를 지금 설치해도 괜찮나요?
A.Microsoft 공식 다운로드 센터에서 제공되는 파일이라면 설치 자체에 문제는 없습니다. 다만 새 보안 업데이트가 나오지 않는 세대이므로, 그 런타임을 요구하는 프로그램 때문에 필요한 경우에만 설치하고 반드시 공식 경로에서 받은 파일을 씁니다.
Q.x86과 x64 중 뭘 설치해야 하나요?
A.기준은 윈도우가 아니라 실행하려는 프로그램입니다. 32비트 프로그램이면 x86이 반드시 필요합니다. 판단이 애매하면 둘 다 설치해도 충돌하지 않습니다.
Q.PC를 바꾸면 또 설치해야 하나요?
A.필요합니다. 재배포 패키지는 프로그램이 아니라 운영체제 단위로 설치되는 시스템 구성 요소라, PC마다 각각 설치돼 있어야 합니다. 윈도우를 재설치한 경우에도 마찬가지입니다.
함께 보면 좋은 글
파일명 숫자만 다른 같은 계열 오류들입니다.
MSVCR100.dll이 없습니다 오류 해결법 100은 2010 세대라 필요한 패키지가 다릅니다 · 눌러서 확인하기 → MSVCR110.dll·MSVCP110.dll 없음 오류 해결 110은 2012 세대입니다. 숫자별 대응표를 함께 보면 좋습니다 · 눌러서 확인하기 → VCRUNTIME140.dll·MSVCP140.dll 없음 오류 해결법 140 계열은 최신 2015-2022 패키지로 해결됩니다 · 눌러서 확인하기 →참고 문서 · Visual C++ Redistributable Packages for Visual Studio 2013 — Microsoft 다운로드 센터 · 최신 지원 Visual C++ 재배포 가능 패키지 다운로드 — Microsoft Learn





