Microsoft Visual C++ на Steam Deck: зачем нужен и как установить

Ошибка вида «не найден 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 там нет, а игра на неё ссылается, причина ошибки подтверждена.

📊 С какой проблемой вы столкнулись на Steam Deck?
Ошибка об отсутствующей DLL
Игра не запускается без сообщения
Нужен пакет для игры не из Steam
Просто изучаю тему

Узнать 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

Выполнено: 0 / 5

Названия пакетов в 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, поэтому риск для системы минимален. Главная опасность — повредить префикс конкретной игры при прерывании установки, что решается его пересозданием. Сохранения при этом могут пострадать, если они не в облаке.