Нужно ли мне устанавливать распространяемый компонент среды выполнения Microsoft VC++ 2015, если у меня уже установлена ​​среда выполнения Microsoft VC++ 2017?

Из того, что я читал эту публикацию и в других местах, касающиеся вопроса о том, почему я не могу установить распространяемый пакет среды выполнения Microsoft VC++ 2015 если у меня уже установлена ​​среда выполнения Microsoft VC++ 2017.

Причина этого «невозможно установить» заключается в том, что после того, как у вас установлен Microsoft VC++ 2017, нет необходимости устанавливать версию 2015, так как 2017 включает 2015. Я прав?

Во-вторых, и это более важно, с этого момента, если у меня установлена ​​более высокая версия Microsoft VC++, я могу спокойно пропустить более раннюю версию, такова будет стратегия Microsoft: в будущем будет только одна версия Microsoft VC++ ( последний). Я прав? Я помню, что читал это в другом месте, но не уверен, правильно ли я понял, и теперь я не мог найти сообщение в блоге. Поэтому я надеюсь, что смогу получить подтверждение здесь.


person Graviton    schedule 13.01.2020    source источник
comment
Казалось бы так. Каждый Visual C++ Распространяемый пакет проверяет наличие...   -  person GSerg    schedule 13.01.2020


Ответы (1)


Распространяемые компоненты среды выполнения VC++ одинаковы для VS 2015, 2017 и 2019! Из службы поддержки Microsoft:

Примечание Visual C++ 2015, 2017 и 2019 используют одни и те же распространяемые файлы.

Однако было выпущено много разных версий этого распространяемого пакета! Программы установки (см. ссылки ниже) выполнят необходимые проверки, чтобы увидеть, присутствует ли уже более свежая версия на целевом компьютере, и сигнализируют об этом.

Библиотеки времени выполнения, входящие в состав этого распространяемого пакета, иногда (как ни странно) называются библиотеками времени выполнения Visual C++ "14". («14» происходит от того факта, что Visual Studio 2015 включает версии 14 компилятора MSVC, VS2017 = MSVC v15 и VS2019 = MSVC v16.)

Будут ли будущие версии Visual C++ использовать тот же распространяемый пакет, неизвестно.

Последние версии для трех поддерживаемых процессорных платформ можно загрузить и/или установить по следующим ссылкам:

EDIT: здесь может быть некоторая путаница с «проверкой версии», о которой я упоминал выше! С той же страницы поддержки Microsoft:

Например, установка распространяемого пакета Visual C++ 2019 также повлияет на программы, созданные с помощью Visual C++ 2015 и 2017. Однако установка распространяемого пакета Visual C++ 2015 не заменит более новые версии файлов, установленных распространяемыми компонентами Visual C++ 2017 и 2019.

Это отличается от всех предыдущих версий Visual C++, поскольку каждая из них имела свои собственные отдельные файлы времени выполнения, не используемые совместно с другими версиями.

Я интерпретирую это как означающее, что если у вас есть «более старая» версия установки vc_redist (выпущенная, скажем, с VS2015), ее компоненты будут обновлены любой более новой установкой. Однако запуск более старой программы установки не будет конфликтовать с более новой установкой.

person Adrian Mole    schedule 13.01.2020
comment
Вот что я не понимаю: если 2015, 2017 и 2019 используют одни и те же файлы дистрибутива, из этого следует, что они также должны быть из одних и тех же двоичных файлов, то в чем смысл проверки версии, поскольку все они по сути одинаковы. ? - person Graviton; 13.01.2020
comment
И, похоже, я не могу получить прямого ответа на свой вопрос из вашего сообщения, а именно: не нужно ли устанавливать VC++ 2015, если у меня уже есть VC++ 2017 или 2019? - person Graviton; 13.01.2020
comment
Хорошо, извините, если я не был ясен! нет необходимости устанавливать распространяемый пакет. для VC 2015, если у вас установлена ​​более поздняя версия! Это один и тот же продукт с разными сигнатурами версий! Например, файл установщика VC2019 (.exe), который сейчас есть в моем программном пакете, имеет версию 14.22.27821.0; версия из VS2015 будет иметь версию вроде 14.xx.yy.zz, где xx определенно меньше 22. - person Adrian Mole; 13.01.2020
comment
Проверка версии выполняется (внутри) установщиками, чтобы предотвратить перезапись более новых двоичных файлов более старыми. Вам не нужно выполнять проверку версии вручную. Двоичные системные файлы (DLL), которые они устанавливают, имеют те же имена, но могут иметь другую версию и содержимое. - person Adrian Mole; 13.01.2020
comment
@Graviton Кроме того, все три распространяемых компонента «зарегистрированы» системой Windows как один и тот же продукт со следующим «ключом реестра»: HKLM\SOFTWARE\Microsoft\VisualStudio\14.0\VC\Runtimes - person Adrian Mole; 13.01.2020