Warum gibt es so viele verschiedene Visual C ++ - Redistributables?


19

Jedes Mal, wenn ich ein Spiel oder sogar OpenOffice installiere, installiert ein Teil der Installationsroutine neben den 10 anderen, die ich bereits auf meinem System habe, eine weitere weiterverteilbare Visual C ++ 2005/2008-Version.

Warum sind so viele verschiedene Versionen (von denen, was sich wie dasselbe anfühlt) notwendig?


Ich habe OpenOffice in letzter Zeit nicht unter Windows installiert, sondern AFAIK OO.org pure Java. Das ist beunruhigend!
Lajuette

2
OO.org ist eigentlich hauptsächlich C ++ mit einigen Java-Komponenten ( Quelle ).
Heavyd

das ist nicht ungewöhnlich. Ich wünschte, es gäbe eine Möglichkeit, sie visuell in Add / Remove-Programmen zusammenzufassen, damit Sie sie nicht alle sehen müssen.
Keltari

Antworten:


22

Visual C ++ Redistributables sind Komponenten, die von App-Entwicklern geliefert werden, die Visual C ++ zum Schreiben ihrer Software verwenden. Durch die Verwendung von Microsofts vielfach erprobtem Code in ihren Apps sparen Entwickler ihre Entwicklungskosten, indem sie das Schreiben von häufig verwendetem Code vermeiden (z. B. Funktionen für Sin- und Cos-Mathematik und die Handhabung von Elementen der Benutzeroberfläche wie Textfeld oder Schaltfläche). Aufgrund der Fragmentierung in den Laufzeitversionen, die von den App-Entwicklern verwendet werden, wird bei der Installation vieler Apps eine lange Liste von Visual C ++ - Redistributables angezeigt. Durch die Deinstallation einer weiterverteilbaren Visual C ++ - Datei können Sie einige Megabyte Speicherplatz sparen, aber Sie riskieren, einige Apps dabei zu beschädigen.

Da sich Programmierer auf Microsoft verlassen, um die Visual C ++ - Laufzeit auf dem neuesten Stand zu halten, veröffentlicht Microsoft ein Sicherheitsupdate für die weitervertreibbaren Dateien. Aufgrund der Programmiereranforderungen ersetzen sich Visual C ++ - weitervertreibbare Dateien jedoch nicht und alte Versionen werden aus Kompatibilitätsgründen beibehalten. Einige Apps sind sehr spezifisch in Bezug auf die Version der Visual C ++ - DLLs, die sie benötigen, um sicherzustellen, dass die App genau so ausgeführt wird, wie sie veröffentlicht wurde. Die Autoren aktualisieren weiterhin auf die neueste Laufzeit, bis sie die Kompatibilität ihrer App mit der neuen Laufzeit getestet haben. Dies ist eine Möglichkeit, um ein paar Tausend Anrufe von verärgerten Kunden zu verhindern, nachdem Microsoft ein Update für die weiterverteilbare Datei veröffentlicht hat. Die meisten Apps sind jedoch an die neueste Version derselben Hauptversion gebunden.

Microsoft muss auch viele Visual C ++ - Laufzeiten unterstützen, da es keine Ahnung hat, welche der App-Entwickler wählen würde. Es können auch innerhalb derselben App mehrere Versionen von Visual C ++ Redistributables erforderlich sein. Wenn beispielsweise eine von Visual C ++ 2008 Redistributable abhängige App eine von Visual C ++ 2005 Redistributable abhängige Komponente verwendet, muss der Entwickler der App beide Versionen von Visual C ++ Redistributables bereitstellen. Auf einem 64-Bit-Computer könnten auf dem System sowohl x86- als auch x64-Editionen von Visual C ++ Redistributables installiert sein, da Visual C ++ Redistributable eine häufig verwendete Komponente ist und es normal ist, sowohl 32-Bit-Apps als auch 64-Bit-Apps (oder sogar Apps, die solche enthalten) zu haben 32-Bit-Code und 64-Bit-Code), die auf einem 64-Bit-System installiert sind.

Sie können wahrscheinlich feststellen, dass die App eine weitervertreibbare Datei installiert, indem Sie nach einer App mit demselben Installationsdatum wie die weitervertreibbare Datei suchen. Es ist jedoch nicht abzusehen, wie viele andere Apps mit einem späteren Installationsdatum von derselben weitervertreibbaren Datei abhängen. Die Zeit, die Sie für die Ermittlung der genauen Abhängigkeit aufwenden, ist wahrscheinlich nicht die wenigen Megabyte wert, die Sie durch die Deinstallation der weiterverteilbaren Dateien einsparen könnten.


Das ist eine sehr gute Antwort. Entwickler zielen auch auf bestimmte Versionen ab. Es wird nicht garantiert, dass eine Funktion in Release A auf die gleiche Weise wie in Release B funktioniert. In Wirklichkeit bleibt das Grundlegende natürlich zwischen den Releases und den neuen Funktionen, die in Release B und höher vorhanden sind, und Funktion C, die nur in Release B vorhanden sind, gleich Release C ist das eigentliche Problem, mit dem Entwickler konfrontiert sind. Sie verbreiten also die von ihnen verwendete Version und kompilieren ihre Software, um nur diese Version zu verwenden. In diesem speziellen Fall sind mehrere Date Releases der C ++ Redistributables der gleichen Version möglich (dh Februar, März, April 2005).
Ramhound

3

Der Grund ist, dass sie nicht dasselbe sind. Zunächst müssen Sie verstehen, dass jede Version von MSVC ++ eine eigene Version der Laufzeitbibliotheken enthält. Es gibt auch 32- und 64-Bit-Versionen. Außerdem gibt es Service Packs, die aktualisierte Versionen von Laufzeitbibliotheken bringen.

Wenn Sie 10 Installationen haben, können Sie deren Namen auflisten? Ich denke nicht, dass Sie mehr als 4 haben sollten (32 und 64 Bit für 2005 und das gleiche für 2008). Service Packs sollten nicht aktualisierte Versionen ersetzen.


1
Ich glaube, das ist richtig - es gibt nur 4, die mir bekannt sind, und die Verbesserung hier ist, dass sie jetzt nebeneinander installiert werden können. Der erforderliche Build hängt davon ab, ob die Anwendung statisch oder dynamisch mit der Laufzeit verknüpft wurde, die beim Kompilieren der Anwendung verwendet wurde. Diese können friedlich nebeneinander existieren und sind relativ klein.
jtreser

+2 mehr für VS2010! Aber wenn OP 10 hat, ist das zu viel.
AndrejaKo

Zugegeben, ich habe sie nicht gezählt. Auf meiner Maschine bei der Arbeit habe ich zwei (2008 32bit und 64bit, beide 9.0.something). Ich werde sie auch zu Hause zählen.
Tomalak

3
Ich habe 12 aufgeführt. 2005 (2) (keine Angabe oder Version aufgeführt) 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 Halle

1
@ DarrenHall - Es ist normal, so viele zu haben. Jede Version ist ein Unterschied, und Sie haben Anwendungen, die auf diese bestimmten Versionen abzielen.
Ramhound

1

Es gibt viele Versionen der weiterverteilbaren C ++ - Dateien, es sei denn, Sie wissen genau, welches Programm die Datei verwenden wird. Entfernen Sie auch nur eine a, und jedes Programm, das sie verwendet hat, wird dauerhaft deaktiviert, sofern es nicht erneut installiert wird.

Diejenigen, auf denen viele Programme installiert sind, haben viele Versionen davon. Microsoft ermöglicht die Neuverteilung des Codes, sodass ein Entwickler nicht jedes Mal einen neuen Code erfinden muss, sondern nur einen davon für Sie bereitstellen kann.

Sie sind klein und nicht groß genug, um sich Sorgen zu machen. Viele von ihnen sind nur KB, einige MB und besser als Programme mit GB.

Ich weiß, dass es ärgerlich ist, viele von ihnen dort zu sehen (ich habe 21 von ihnen), aber lass sie in Ruhe, deine Programme werden heruntergefahren, wenn du sie entfernst. Es wäre auch schön, wenn die Programmentwickler sie auch für das einzelne Programm kennzeichnen würden, aber wenn sie dies tun würden, hätten Sie Hunderte mehr. Im Moment sind die Programme huckepack von ihnen, was es Programmen ermöglicht, sowohl alte als auch neue Codierungen zu verwenden.

Ich habe einen Abschluss in Computervernetzung. Ich würde dir nicht sagen, was du mit deinem Computer machen sollst, was ich nicht mit meinem tun würde

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.