Ошибка вида «не найден vcruntime140.dll» или отказ игры запускаться на Steam Deck почти всегда указывает на отсутствие пакета Microsoft Visual C++ Redistributable внутри префикса Proton. Эти библиотеки нужны Windows-играм, а поскольку Deck работает на Linux и запускает их через прослойку совместимости, установить Visual C++ привычным способом «скачать и запустить» не получится — нужны обходные пути через Protontricks или Winetricks.
В этой статье разберём, зачем играм на Steam Deck нужны распространяемые пакеты Visual C++, как проверить их наличие в префиксе конкретной игры и как установить недостающие версии без риска повредить систему. Отдельно разберём типичные ошибки и способы их диагностики.
Зачем Steam Deck нужен Microsoft Visual C++
Значительная часть игр для Windows написана с использованием компиляторов Microsoft Visual Studio и зависит от библиотек времени выполнения — Visual C++ Redistributable. На обычном ПК с Windows эти пакеты ставятся в систему один раз, и все игры их видят. На Steam Deck ситуация иная: игры запускаются через Proton, и у каждой игры есть собственный изолированный префикс — виртуальная папка, имитирующая Windows-окружение.
Из этого следует важный вывод: библиотеки Visual C++ должны присутствовать внутри префикса каждой конкретной игры, а не в системе SteamOS. В большинстве случаев Steam ставит их автоматически при первом запуске — это видно по сообщению «Установка дополнительного ПО» перед стартом игры. Но автоматика срабатывает не всегда, особенно у игр из сторонних магазинов, добавленных вручную.
Когда требуется ручная установка
Автоматическая установка обычно справляется с официальными играми из каталога Steam. Ручное вмешательство понадобится в нескольких характерных ситуациях:
- 🎮 Игра не из Steam — добавлена через Heroic Games Launcher, Lutris или как сторонняя программа, и её префикс создавался без установщика зависимостей.
- ⚠️ При запуске появляется ошибка об отсутствующей DLL:
vcruntime140.dll,msvcp140.dll,msvcr100.dllи подобных. - 🔧 Префикс был повреждён или удалён, после чего игра перестала запускаться, хотя раньше работала.
- 🧩 Игра требует старую версию пакета (например, Visual C++ 2010 или 2013), которую Proton по умолчанию не ставит.
Определить, какая именно DLL отсутствует, помогает текст ошибки: имя файла обычно указывает на версию пакета. Например, msvcr100.dll относится к Visual C++ 2010, а vcruntime140.dll — к пакетам 2015–2022 годов.
Проверка префикса игры перед установкой
Прежде чем что-то устанавливать, стоит найти префикс проблемной игры и понять его состояние. У каждой игры в Steam есть числовой идентификатор AppID, а префикс лежит по пути вида:
~/.steam/steam/steamapps/compatdata/APPID/pfx
Внутри папки pfx находится каталог drive_c — аналог диска C: в Windows. Установленные библиотеки Visual C++ обычно лежат в drive_c/windows/system32. Если нужной DLL там нет, а игра на неё ссылается, причина ошибки подтверждена.
Узнать AppID игры можно несколькими способами: посмотреть в свойствах ярлыка, в URL страницы игры в магазине Steam или через сторонние базы вроде SteamDB. Для не-Steam игр идентификатор генерируется автоматически и выглядит как очень длинное число.
Установка Visual C++ через Protontricks
Самый удобный инструмент для работы с префиксами на Steam Deck — Protontricks. Он распространяется как Flatpak-приложение и устанавливается через магазин Discover в настольном режиме (Desktop Mode). Переключиться в него можно через меню Steam: «Выключение» → «Перейти в режим рабочего стола».
Порядок действий после установки Protontricks:
- 📦 Откройте Discover, найдите Protontricks и установите его.
- 🎯 Запустите Protontricks и выберите нужную игру из списка — он показывает названия и AppID.
- 🍷 Выберите пункт работы с Wine-окружением (запуск Winetricks для префикса).
- 📚 В разделе установки библиотек (DLL) найдите нужный пакет:
vcrun2019,vcrun2022,vcrun2013и т. д. - ✅ Дождитесь окончания установки и перезапустите игру.
☑️ Установка Visual C++ через Protontricks
Названия пакетов в Winetricks соответствуют годам выпуска Visual C++: vcrun2010, vcrun2012, vcrun2013, vcrun2015 и далее. Пакеты 2015–2022 фактически взаимозаменяемы — более новый включает библиотеки предыдущих лет этой линейки.
⚠️ Внимание: установка компонентов через Winetricks может занять заметное время, а окно терминала при этом выглядит «зависшим». Не прерывайте процесс принудительно — это может оставить префикс в повреждённом состоянии.
Альтернативные способы установки
Если Protontricks по какой-то причине недоступен, есть другие варианты. Игры, добавленные через Lutris или Heroic, часто имеют встроенные средства установки зависимостей — проверьте настройки конкретной игры в этих лаунчерах.
Ещё один путь — официальный установщик Redistributable с сайта Microsoft, запущенный внутри префикса игры. Для этого скачанный .exe-файл добавляют в Steam как стороннюю игру, принудительно включают для него тот же Proton, что использует проблемная игра, и запускают. Однако этот метод менее предсказуем: установщик может поместить библиотеки не в тот префикс, если AppID ярлыка отличается от AppID игры. Надёжнее действовать через Protontricks, который явно привязывается к нужному префиксу.
Типичные ошибки и их диагностика
Не каждая ошибка запуска связана с Visual C++. Прежде чем ставить пакеты, полезно сузить круг причин. В таблице ниже собраны частые симптомы и вероятные направления проверки.
| Симптом | Возможная причина | Что проверить |
|---|---|---|
| Ошибка об отсутствии vcruntime/msvcp DLL | Нет пакета Visual C++ в префиксе | Установить vcrun через Protontricks |
| Игра молча закрывается при старте | Несовместимость версии Proton | Сменить версию Proton в свойствах игры |
| Ошибка DirectX / d3dcompiler | Отсутствуют компоненты DirectX | Установить d3dx/dxvk-зависимости |
| Игра работала, потом сломалась | Повреждён префикс | Удалить папку compatdata/APPID и дать Steam пересоздать префикс |
| Ошибка .NET Framework | Нужен .NET, а не Visual C++ | Установить dotnet-пакеты через Winetricks |
Полезный приём диагностики — включить лог Proton. Для этого в параметрах запуска игры в Steam укажите:
PROTON_LOG=1 %command%
После попытки запуска в домашней папке появится файл вида steam-APPID.log, где можно найти строки об ошибках загрузки DLL. Это помогает отличить проблему с Visual C++ от других причин.
⚠️ Внимание: удаление папки compatdata/APPID стирает префикс игры целиком, включая сохранения, которые не синхронизируются через Steam Cloud. Перед удалением проверьте, где лежат сейвы, и скопируйте их.
Что делать, если Protontricks не видит игру
Убедитесь, что игра хотя бы раз запускалась через Proton — префикс создаётся при первом старте. Для сторонних игр проверьте, что в их свойствах в Steam включена принудительная совместимость с Proton. Также помогает обновление Protontricks через Discover до актуальной версии.
Особенности SteamOS и ограничения метода
SteamOS имеет файловую систему, защищённую от изменений: системный раздел доступен только для чтения, а обновления ОС перезаписывают его. Поэтому устанавливать что-либо «в систему» классическими linux-способами — плохая идея: изменения либо не сохранятся, либо сломаются после апдейта. Префиксы Proton хранятся в пользовательском разделе и от этого не страдают.
Также учитывайте, что поведение Proton отличается между версиями. Игра, требовавшая ручной установки Visual C++ на старой версии Proton, может работать «из коробки» на новой — разработчики регулярно добавляют зависимости в стандартную поставку. Если возникла проблема, имеет смысл сначала переключить версию Proton в свойствах игры (вкладка «Совместимость») и только потом лезть в префикс.
Часто задаваемые вопросы
Нужно ли ставить Visual C++ отдельно для каждой игры?
Да, если речь о ручной установке. Каждая игра использует собственный префикс Proton, и библиотеки должны находиться именно в нём. Steam автоматизирует это для игр из своего каталога, но для сторонних игр установку приходится повторять для каждого префикса.
Какой пакет выбрать: vcrun2015, 2019 или 2022?
Пакеты линейки 2015–2022 взаимозаменяемы: более новый включает библиотеки предыдущих. Обычно достаточно установить самый свежий из доступных в Winetricks. Старые пакеты (2010, 2012, 2013) — отдельные, их нужно ставить независимо, если игра требует именно их.
Удалится ли установленный Visual C++ после обновления SteamOS?
Нет. Префиксы игр хранятся в пользовательском разделе (папка compatdata), которого обновления системы не касаются. Однако переустановка самой игры или ручное удаление префикса сотрёт и установленные библиотеки.
Игра просит .NET Framework — это то же самое, что Visual C++?
Нет, это разные наборы компонентов. Visual C++ Redistributable — библиотеки для программ на C++, а .NET Framework — среда выполнения для приложений на C# и других .NET-языках. Оба ставятся через Protontricks, но выбираются разные пакеты: vcrun для первого, dotnet для второго.
Безопасно ли использовать Protontricks?
Protontricks работает только с префиксами игр и не изменяет системные файлы SteamOS, поэтому риск для системы минимален. Главная опасность — повредить префикс конкретной игры при прерывании установки, что решается его пересозданием. Сохранения при этом могут пострадать, если они не в облаке.