Почему Steam с каждой игрой устанавливает DirectX и Visual C++ Redist?
Ответ: из-за Microsoft.
Наверное, многие задавались вопросом, зачем при каждой установке новой игры через Steam, он дополнительно устанавливает DirectX, C++ Redistributable, .NET Framework? Неужели нельзя просто проверить их наличие? Так вот Microsoft сделала так, что нельзя. Проблема в том, что существует множество версий данных компонентов, при чём различных для платформ x86 и x64.
Кроме того, единственный способ их распространения — запустить установщик, который также является и единственным поддерживаемым Microsoft способом проверить корректность установленной версии. То есть, если установленный вами DirectX имеет последнюю версию, поскольку вы запускали самую новую версию установщика, это не гарантирует того, что все предыдущие версии также были установлены. А обратная совместимость здесь, к сожалению, не предусмотрена — каждая игра нацелена на определённую версию.
Microsoft не предоставляет возможности ручной проверки корректности версий, поскольку существует множество файлов, все из которых должны присутствовать. Код проверки правильности установки и исправления некорректной установки находится в самом установщике, и только его запуск гарантирует, что во время запуска игры будут присутствовать корректные файлы, и предотвращает случаи неудачного запуска игры с неизвестными ошибками, если корректная версия отсутствует или установка каким-либо образом прошла неудачно.