Избавляемся от ошибки MSVCR140.dll / msvcr120.dll / MSVCR110.dll и других DLL раз и навсегда

Умные решения


Очень часто стал замечать, что люди плачут об ошибках "запуск программы невозможен, так как на компьютере отсутствует MSVCR120.dll / MSVCR140.dll / MSVCR160.dll".
Это встречается и в Saints Row 4, и в DayZ, и в Arma 3, и в Rust...

#1 Очевидное решение


Файлы серии MSVCR и MSVCP являются частью Microsoft Visual C++ Redistributable Packages, соответственно нужно установить его.

Переходим на официальный сайт и скачиваем:

Скачать Visual C++ с сайта Microsoft

Выбираем под свою операционную систему vcredist_arm.exe, vcredist_x64.exe или vcredist_x86.exe (лучше ставить все сразу - не ошибетесь).

Эти файлы часто лежат в папке с игрой или ее установщиком (Redist/Vcredist), можно ничего не качать, а просто поставить оттуда.


#2 Решение при проблемах



И вот, вроде бы вы все сделали правильно, все установили, но приложению так и не хватает определенного MSVCR140.dll, MSVCR120.dll или MSVCP110.dll и подобных.
На форумах вас уже называют глупым школьником, а других адекватных решений не предлагают, что делать?

Ваша проблема из простой превратилось в более сложную, когда Windows запутался что у него установлено, а что нет.
Один святой человек сделал раздачу, где включены библиотеки всех годов и версий с удобным установщиком.
Скачать все версии Visual C++ Redistributable 2005-2017 (62,7 Мб):

Скачать сборку Visual C++ 2005-2017

магнит-зеркало

Заодно стоит обновить .Net Framework с этого сайта: http://net-framework.ru/


Как ставить:
  • В зависимости от разрядности системы (64=x64 или 32=x86 - узнается по нажатию правой кнопки на "Компьютер" -> "Свойства" и другими несложными способами) ставим пакет программ. Установщик сам определит наличие и установит все как надо.
  • В крайнем случае просто запускаем Windows Installer CleanUp для удаления всех версий пакетов и ставим по новой.
  • Более детально распишу, где какой DLL находится:
    MSVCR160.dll / MSVCP160.dll - Microsoft Visual C++ 2017
    MSVCR140.dll / MSVCP140.dll - Microsoft Visual C++ 2015
    MSVCR120.dll / MSVCP120.dll - Microsoft Visual C++ 2013
    MSVCR110.dll / MSVCP110.dll - Microsoft Visual C++ 2012
    MSVCR100.dll / MSVCP100.dll - Microsoft Visual C++ 2010
    MSVCR90.dll / MSVCP90.dll - Microsoft Visual C++ 2008
    MSVCR80.dll / MSVCP80.dll - Microsoft Visual C++ 2005
  • Более тонко процесс удаления/установки программ можно провести при помощи "ключей", они написано в спойлере:

/ShowFalse - отображение MSI-заглушек (False) в "Установка и Удаление программ" (Работает только при установке Microsoft Visual C++ Redistributable Package). Ключ не чувствителен к регистру.

/S - установка Microsoft Visual C++ 2005-2008-2010-2012-2013-2015 Redistributable Package в тихом варианте. Ключ чувствителен к регистру, и соответственно используем только /S , а не /s
Если был указан неправильно ключ или не указан вообще, то произойдёт установка c индикацией установки.

/WithOutFalse - установка Microsoft Visual C++ 2005-2008-2010-2012-2013-2015 Redistributable Package без MSI-заглушек (False). Ключ не чувствителен к регистру.

/WithOutVC05 - установка без Microsoft Visual C++ 2005 Redistributable Package. Ключ не чувствителен к регистру.

/WithOutVC08 - установка без Microsoft Visual C++ 2008 Redistributable Package. Ключ не чувствителен к регистру.

/WithOutVC10 - установка без Microsoft Visual C++ 2010 Redistributable Package. Ключ не чувствителен к регистру.

/WithOutVC12 - установка без Microsoft Visual C++ 2012 Redistributable Package. Ключ не чувствителен к регистру.

/WithOutVC13 - установка без Microsoft Visual C++ 2013 Redistributable Package. Ключ не чувствителен к регистру.

/WithOutVC15 - установка без Microsoft Visual C++ 2015 Redistributable Package. Ключ не чувствителен к регистру.

/WithOutVC17 - установка без Microsoft Visual C++ 2017 Redistributable Package. Ключ не чувствителен к регистру.

Дополнительные ключи:
/GetListProg - получение списка установленных программ в операционной системе, без последующей установки Microsoft Visual C++ Redistributable Package. Этот ключ актуален для тех, кто хочет посмотреть установлены ли MSI-заглушки (False). Ключ не чувствителен к регистру.

/DelVCAll - удаление ранее установленных Microsoft Visual C++ 2005-2008-2010-2012-2013-2015 Redistributable Package, без последующей установки Microsoft Visual C++ Redistributable Package. Ключ не чувствителен к регистру.

/DelVC05 - удаление ранее установленных Microsoft Visual C++ 2005 Redistributable Package, без последующей установки Microsoft Visual C++ Redistributable Package. Ключ не чувствителен к регистру.

/DelVC08 - удаление ранее установленных Microsoft Visual C++ 2008 Redistributable Package, без последующей установки Microsoft Visual C++ Redistributable Package. Ключ не чувствителен к регистру.

/DelVC10 - удаление ранее установленных Microsoft Visual C++ 2010 Redistributable Package, без последующей установки Microsoft Visual C++ Redistributable Package. Ключ не чувствителен к регистру.

/DelVC12 - удаление ранее установленных Microsoft Visual C++ 2012 Redistributable Package, без последующей установки Microsoft Visual C++ Redistributable Package. Ключ не чувствителен к регистру.

/DelVC13 - удаление ранее установленных Microsoft Visual C++ 2013 Redistributable Package, без последующей установки Microsoft Visual C++ Redistributable Package. Ключ не чувствителен к регистру.

/DelVC15 - удаление ранее установленных Microsoft Visual C++ 2015 Redistributable Package, без последующей установки Microsoft Visual C++ Redistributable Package. Ключ не чувствителен к регистру.

/DelVC17 - удаление ранее установленных Microsoft Visual C++ 2017 Redistributable Package, без последующей установки Microsoft Visual C++ Redistributable Package. Ключ не чувствителен к регистру.

/? - вызов справки.


Вот и все! Теперь не будет никаких проблем со злосчастными MSVCR DLL. Буду рад, если вы поделитесь статьей с людьми, которые все еще мучаются.