Pourquoi y a-t-il tant de redistribuables Visual C ++ différents?

19

Chaque fois que j'installe un jeu, ou même OpenOffice, une partie de la routine d'installation installe encore un autre Visual C ++ 2005/2008 redistribuable, juste à côté des 10 autres que j'ai déjà sur mon système.

Pourquoi tant de versions différentes (de ce qui ressemble à la même chose) sont-elles nécessaires?

Tomalak
la source
Je n'ai pas installé OpenOffice sur Windows récemment, mais AFAIK OO.org Java pur. C'est inquiétant!
lajuette
2
OO.org est en fait principalement C ++ avec quelques composants Java ( source ).
2010
ce n'est pas rare. Je souhaite qu'il y ait un moyen de les retranscrire visuellement dans des programmes d'ajout / suppression afin que vous n'ayez pas à les voir tous.
Keltari

Réponses:

22

Les redistribuables Visual C ++ sont des composants fournis par les développeurs d'applications qui utilisent Visual C ++ pour écrire leur logiciel. En utilisant le code bien testé et largement utilisé de Microsoft dans leurs applications, les développeurs économisent leurs coûts de développement en évitant d'écrire du code couramment utilisé (par exemple, les fonctions mathématiques sin et cos et la gestion des éléments communs de l'interface utilisateur comme la zone de texte ou le bouton). En raison de la fragmentation des versions d'exécution utilisées par les développeurs d'applications, vous verrez une longue liste de redistribuables Visual C ++ si vous installez un grand nombre d'applications. La désinstallation d'un Visual C ++ redistribuable pourrait vous faire économiser quelques mégaoctets d'espace disque, mais vous risquez de casser certaines applications en le faisant.

Étant donné que les programmeurs s'appuient sur Microsoft pour maintenir le runtime Visual C ++ à jour, Microsoft publie une mise à jour de sécurité pour les redistributables, mais en raison des demandes des programmeurs, les redistributables Visual C ++ ne se remplacent pas et les anciennes versions sont conservées pour des raisons de compatibilité. Certaines applications sont très spécifiques sur la version des DLL Visual C ++ dont elles ont besoin pour s'assurer que l'application s'exécute exactement comme publié. Leurs auteurs maintiennent la mise à jour vers le dernier runtime jusqu'à ce qu'ils testent la compatibilité de leur application avec le nouveau runtime. C'est un moyen d'empêcher quelques milliers d'appels de clients en colère après que Microsoft ait publié une mise à jour du redistribuable. La plupart des applications, cependant, se lient à la dernière édition de la même version principale,

Microsoft doit également prendre en charge de nombreux runtimes Visual C ++ car il n'a aucune idée de celui que le développeur de l'application choisirait. Plusieurs versions de redistribuables Visual C ++ peuvent être requises même au sein de la même application, par exemple, si une application dépendant de Visual C ++ 2008 redistribuable utilise un composant dépendant de Visual C ++ 2005 redistribuable, le développeur de l'application doit expédier les deux versions de redistribuables Visual C ++. Sur un ordinateur 64 bits, le système peut disposer des éditions x86 et x64 de Visual C ++ Redistributables, car Visual C ++ redistributable est un composant couramment utilisé, et il est normal d'avoir à la fois des applications 32 bits et des applications 64 bits (ou même des applications qui contiennent code 32 bits et code 64 bits) installé sur un système 64 bits.

Vous pouvez probablement trouver l'application installant un redistribuable en recherchant une application avec la même date d'installation que le redistribuable, mais il n'y a pas de dire combien d'autres applications avec une date d'installation ultérieure dépendent du même redistribuable. Le temps que vous passez à trouver la dépendance exacte ne vaut probablement pas les quelques mégaoctets que vous pouvez économiser en désinstallant les redistribuables.

Sheng Jiang 蒋 晟
la source
Ceci est une très bonne réponse. Les développeurs ciblent également des versions spécifiques. Une fonction dans la version A n'est pas garantie de fonctionner de la même manière dans la version B. Bien sûr, en réalité, la base restera la même entre les versions et les nouvelles fonctionnalités Feature C qui existent dans la version B et les versions ultérieures et Feature C qui n'existe que dans La version C est le vrai problème auquel les développeurs sont confrontés. Ils diffusent donc la version qu'ils ont utilisée et compilent leur logiciel pour n'utiliser que cette version. Dans ce cas spécifique, plusieurs versions à date des redistribuables C ++ sont possibles pour la même version (c.-à-d. Février, mars, avril 2005).
Ramhound
3

La raison en est qu'ils ne sont pas la même chose. Vous devez d'abord comprendre que chaque version de MSVC ++ est livrée avec sa propre version des bibliothèques d'exécution. Il existe également des versions 32 et 64 bits. En outre, il existe des service packs apportant des versions mises à jour des bibliothèques d'exécution.

Si vous avez 10 installations, pouvez-vous lister leurs noms? Je ne pense pas que vous devriez en avoir plus de 4 (32 et 64 bits pour 2005 et même pour 2008). Les Service Packs devraient remplacer les versions non mises à jour.

AndrejaKo
la source
1
Je crois que c'est correct - il n'y en a que 4 à ma connaissance et l'amélioration ici est qu'ils peuvent désormais être installés côte à côte. La génération requise dépend de la conformité de l'application à la liaison statique ou dynamique au runtime utilisé lors de la compilation de l'application. Ceux-ci peuvent coexister pacifiquement et sont relativement petits.
jtreser
+2 de plus pour VS2010! Mais si OP en a 10, c'est trop.
AndrejaKo
Eh bien, certes, je ne les ai pas comptés. Sur ma machine au travail, j'en ai deux (2008 32 bits et 64 bits, tous deux 9.0). Je les compterai aussi à la maison.
Tomalak
3
J'en ai 12 répertoriés. 2005 (2) (aucune spécification ni version répertoriée) 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
Darren Hall
1
@DarrenHall - C'est normal d'en avoir autant. Chaque version est différente et vous avez des applications qui ciblent ces versions spécifiques.
Ramhound
1

Il existe de nombreuses versions des fichiers redistribuables C ++, à moins que vous ne sachiez précisément quel programme utilisera le fichier, supprimez même un et tous les programmes qui l'ont utilisé seront désactivés de manière permanente, sauf s'ils sont réinstallés.

Ceux qui ont de nombreux programmes installés en auront plusieurs versions. Microsoft permet de le redistribuer, donc plutôt que d'inventer un nouveau code à chaque fois, un développeur peut simplement en insérer un pour vous.

Ils sont minuscules et pas assez gros pour vous inquiéter. Beaucoup d'entre eux ne sont que Ko, quelques-uns sont Mo et mieux que les programmes qui sont un Go.

Je sais que c'est gratifiant de voir beaucoup d'entre eux là-bas (j'en ai 21), mais laissez-les tranquilles, vos programmes s'arrêteront si vous les supprimez. Ce serait également bien si les développeurs de programmes les étiquetaient également pour le programme individuel, mais s'ils le faisaient, vous en auriez des centaines de plus. À l'heure actuelle, les programmes se superposent à eux, ce qui permet aux programmes d'utiliser le codage de l'ancien et du nouveau.

J'ai un diplôme en réseautique informatique. Je ne te dirais rien à faire à ton ordinateur que je ne ferais pas au mien

Kamiko
la source