Являются ли динамические библиотеки времени выполнения для Visual C ++ (в частности, 2008) частью операционной системы Windows в настоящее время? Я заметил, что по крайней мере в Windows 8 вам больше не нужно поставлять их вместе с вашим приложением или попросить пользователя установить распространяемый пакет от Microsoft.
Это правда? Если да, то для каких версий Windows и для каких версий Visual C ++ это применимо?
Нет, они никогда не были частью дистрибутива Windows. Развертывание их самостоятельно является жестким требованием.
Это, конечно, может казаться что они есть. Начиная с msvcrt.dll в каталоге system32, он имеет то же имя, что и DLL-библиотека времени выполнения C ++ в версиях Visual Studio до VS2002 (VS6 и более ранние). Однако это частная копия CRT, которая используется исполняемыми файлами Windows. И защищен функцией защиты файловой системы в Windows, предотвращающей разрушение операционной системы старыми установщиками.
Это, конечно, часто работает случайно. Есть много программы, которые требуют Microsoft CRT, поэтому весьма вероятно, что пользователь запустил установщик до того, как он установил библиотеки DLL. Очевидно, что вы не можете зависеть от этого общего несчастного случая.
Аналогично для Windows 8 предустановленный пакет Microsoft.VCLibs.110 соответствует пакету, необходимому для приложения Store, написанного на C ++. Но по той же причине, что и выше, программы Microsoft Store были также созданы с VS2012, как и ваша. То, что произойдет в предстоящем VS2013, сейчас немного мутно, скоро мы узнаем.
На мой взгляд, ответ будет и: да, и нет.