Почему Steam с каждой игрой устанавливает DirectX и Visual C++ Redist?

Ответ: из-за Microsoft.

Наверное, многие задавались вопросом, зачем при каждой установке новой игры через Steam, он дополнительно устанавливает DirectX, C++ Redistributable, .NET Framework? Неужели нельзя просто проверить их наличие? Так вот Microsoft сделала так, что нельзя. Проблема в том, что существует множество версий данных компонентов, при чём различных для платформ x86 и x64.

Почему Steam с каждой игрой устанавливает DirectX и Visual C++ Redist?

Кроме того, единственный способ их распространения — запустить установщик, который также является и единственным поддерживаемым Microsoft способом проверить корректность установленной версии. То есть, если установленный вами DirectX имеет последнюю версию, поскольку вы запускали самую новую версию установщика, это не гарантирует того, что все предыдущие версии также были установлены. А обратная совместимость здесь, к сожалению, не предусмотрена — каждая игра нацелена на определённую версию.

Microsoft не предоставляет возможности ручной проверки корректности версий, поскольку существует множество файлов, все из которых должны присутствовать. Код проверки правильности установки и исправления некорректной установки находится в самом установщике, и только его запуск гарантирует, что во время запуска игры будут присутствовать корректные файлы, и предотвращает случаи неудачного запуска игры с неизвестными ошибками, если корректная версия отсутствует или установка каким-либо образом прошла неудачно.

532532
211 комментарий

Если автор сам отвечает на поставленный вопрос в заголовке, то вопросительный знак ставить не надо. И что этот текст делает в гайдах? Тут разве руководство какое-то?

172

Гайд как не надо писать гайды

153

Ну это скорее FAQ, но раз ничего подобного на этом трехбуквенном нет, то гайды самое близкоподходящее, имхо.

PS. Стим не совсем то, т.к. такое свойственно многим лунчерам и инсталляторам.

15

Ага, руководство как делать не стоит

Пользуясь случаем, передаю пламенный привет как Microsoft, так и нашим рукожопым разрабам, которые разные версии программ для госконтор делают на разных версиях MS Visual C++

85

Разное время разработки - разные версии, всё логично. Не очень понятно какое реалистичное проблемы решение вы видите, как по мне лучше 10 версий дистров библиотек, чем на 100 программ либы нужной версии будут вшиты в дистры программ. Итого получим вплоть до 100 экземпляров одних и тех же dll.

123

Не то что Линукс с его огромной библиотекой идеально работающих игр

9