Почему существует так много различных распространяемых файлов Visual C ++?


19

Каждый раз, когда я устанавливаю игру или даже OpenOffice, часть процедуры установки устанавливает еще один распространяемый Visual C ++ 2005/2008, рядом с 10 другими, которые у меня уже есть в моей системе.

Почему так много разных версий (того, что похоже на одно и то же) необходимо?


В последнее время я не устанавливал OpenOffice на Windows, но AFAIK OO.org - чистая Java. Это тревожно!
lajuette

2
OO.org на самом деле в основном C ++ с некоторыми компонентами Java ( источник ).
тяжело

это не редкость. Хотелось бы, чтобы был способ визуально свернуть их в программах добавления / удаления, чтобы вам не приходилось видеть их все.
Келтари

Ответы:


22

Распространяемые файлы Visual C ++ - это компоненты, поставляемые разработчиками приложений, которые используют Visual C ++ для написания своего программного обеспечения. Используя хорошо проверенный и широко используемый код Microsoft в своих приложениях, разработчики снижают затраты на разработку, избегая написания часто используемого кода (например, функций sin и cos math и обработки общих элементов пользовательского интерфейса, таких как текстовое поле или кнопка). Из-за фрагментации версий времени выполнения, используемых разработчиками приложений, вы увидите длинный список распространяемых файлов Visual C ++, если вы установите много приложений. Удаление одного распространяемого Visual C ++ может сэкономить несколько мегабайт дискового пространства, но при этом вы рискуете сломать некоторые приложения.

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

Microsoft также должна поддерживать множество сред выполнения Visual C ++, потому что она не знает, какой из них выберет разработчик приложения. Несколько версий распространяемых таблиц Visual C ++ могут потребоваться даже в рамках одного и того же приложения, например, если приложение, зависящее от распространяемого Visual C ++ 2008, использует компонент, зависящий от распространяемого Visual C ++ 2005, разработчик приложения должен поставлять обе версии распространяемых Visual C ++. На 64-битном компьютере в системе могут быть установлены как x86, так и x64 выпуски Visual C ++ Redistributables, поскольку распространяемый Visual C ++ является часто используемым компонентом, и обычно есть как 32-битные, так и 64-битные приложения (или даже приложения, содержащие как 32-битный код, так и 64-битный код), установленный в 64-битной системе.

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


Это очень хороший ответ. Разработчики также ориентированы на конкретные версии. Функция в Выпуске A не гарантируется, что она будет работать так же, как и в Выпуске B. Конечно, в действительности, базовая версия останется неизменной между выпусками, новыми функциями Feature C, существующими в Release B и более поздних версиях, и Feature C, существующими только в Релиз C - это настоящая проблема, с которой сталкиваются разработчики. Поэтому они не доверяют используемой версии и компилируют свое программное обеспечение, чтобы использовать только эту версию. В этом конкретном случае возможны несколько выпусков Дистрибутивных файлов C ++ одной и той же версии (например, февраль, март, апрель 2005 г.).
Ramhound

3

Причина в том, что они не одно и то же. Прежде всего вам необходимо понять, что каждая версия MSVC ++ поставляется со своей версией библиотек времени выполнения. Есть также 32- и 64-битные версии. Также есть сервисные пакеты с обновленными версиями библиотек времени выполнения.

Если у вас есть 10 установок, можете ли вы перечислить их имена? Я не думаю, что у вас должно быть больше 4 (32 и 64 бит в 2005 году и то же самое в 2008 году). Пакеты обновлений должны заменять не обновленные версии.


1
Я считаю, что это правильно - есть только 4, о которых я знаю, и улучшение здесь в том, что теперь их можно устанавливать бок о бок. Требуемая сборка зависит от того, было ли приложение выполнено для статической или динамической ссылки на среду выполнения, используемую при компиляции приложения. Они могут мирно сосуществовать и относительно невелики.
jtreser

+2 больше за VS2010! Но все же, если у ОП 10, это слишком много.
AndrejaKo

Ну, по общему признанию, я не посчитал их. На моей машине на работе у меня два (2008 32bit и 64bit, оба 9.0. Что-то). Я тоже буду считать их дома.
Томалак

3
У меня есть 12 в списке. 2005 (2) (без спецификации или версии в списке) 2008 (8) x32 / x64 9.0.21022, 9.0.30729.17, 9.0.30729.4148, 9.0.30729.6161 2010 (2) x32 / x64 10.0.40219
Даррен Холл,

1
@DarrenHall - это нормально, когда их так много. Каждая версия отличается, и у вас есть приложения, предназначенные для этих конкретных версий.
Ramhound

1

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

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

Они крошечные и недостаточно большие, чтобы о них беспокоиться. Многие из них имеют размер только в КБ, некоторые - в МБ, и лучше, чем программы в ГБ.

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

У меня есть степень в области компьютерных сетей. Я бы не сказал вам ничего сделать с вашим компьютером, что я бы не сделал с моим собственным

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.