Я искренне присоединяюсь к рекомендации , а не , чтобы вручную изменить версию CRT, на которую вы ссылаетесь. Однако, если по какой-то причине (которую я не могу себе представить) это правильный путь для вас, способ сделать это - изменить манифест для вашего проекта.
Сначала убедитесь, что манифест не генерируется при каждой сборке (на VS2005: свойства конфигурации / компоновщик / файл манифеста / генерация манифеста), поскольку он перезапишет изменения, внесенные вами вручную. Также убедитесь, что изоляция включена.
Затем найдите файл манифеста - он должен быть в $ (IntDir) (например, Debug). Вы должны увидеть раздел, похожий на -
<dependency>
<dependentAssembly>
<assemblyIdentity type='win32' name='Microsoft.VC80.DebugCRT' version='8.0.50727.762' processorArchitecture='x86' publicKeyToken='1fc8b3b9a1e18e3b' />
</dependentAssembly>
</dependency>
(Конечно, для отладочных сборок). Вам необходимо отредактировать атрибуты version и publicKeyToken элемента CRT.
Вы можете проверить файлы в вашей локальной папке WINDOWS \ WinSxS, чтобы увидеть доступные версии. Проверьте здесь как извлечь publicKeyToken, как только вы найдете нужную версию. (Хотя я сначала попробую взглянуть непосредственно на манифесты других проектов, ссылаясь на желаемую версию CRT).
Если вы идете туда, ожидайте немного бурной воды. Возможно, вам повезет, если ваше приложение является консольным приложением, которое не связывается с другими параллельными компонентами (MFC, OpenMP и т. Д.). Если ваше приложение нетривиально, я бы удивился, если бы между компонентами SxS не было каких-либо сложных зависимостей версий.
(редактировать) Вам также необходимо распространять вместе с вашим приложением конкретный CRT, который вы используете. Вот кто-то , кто это сделал.