Warum gibt es so viele verschiedene verteilbare Visual C ++ - Dateien?

23247
Tomalak

Jedes Mal, wenn ich ein Spiel oder sogar OpenOffice installiere, wird in der Installationsroutine noch eine weitere verteilbare Visual C ++ 2005/2008 installiert, direkt neben den 10 anderen, die ich bereits auf meinem System habe.

Warum sind so viele verschiedene Versionen (von denen sich das Gleiche anfühlt) notwendig?

19
Ich habe OpenOffice in letzter Zeit nicht auf Windows installiert, aber AFAIK OO.org ist reines Java. Das ist beunruhigend lajuette vor 14 Jahren 0
OO.org ist eigentlich hauptsächlich C ++ mit einigen Java-Komponenten ([source] (http://about.openoffice.org/index.html#history)). heavyd vor 14 Jahren 2
das ist nicht ungewöhnlich. Ich wünschte, es gäbe eine Möglichkeit, sie visuell in Programme zum Hinzufügen / Entfernen aufzurollen, damit Sie sie nicht alle sehen müssen. Keltari vor 11 Jahren 0

3 Antworten auf die Frage

22
Sheng Jiang 蒋晟

Weitervertreibbare Visual C ++ - Komponenten sind Komponenten, die von App-Entwicklern geliefert werden, die Visual C ++ zum Schreiben ihrer Software verwenden. Durch die Verwendung des bewährten und häufig verwendeten Codes von Microsoft in ihren Apps sparen Entwickler ihre Entwicklungskosten, indem sie das Schreiben von häufig verwendetem Code (z. B. Funktionen von Sin und Cosmatics und die Handhabung allgemeiner Benutzeroberflächenelemente wie Textbox oder Schaltfläche) vermeiden. Aufgrund der Fragmentierung in den Laufzeitversionen, die von den App-Entwicklern verwendet werden, wird bei der Installation einer Vielzahl von Apps eine lange Liste der weitervertreibbaren Visual C ++ - Dateien angezeigt. Durch die Deinstallation einer weitervertreibbaren Visual C ++ - Datei können Sie zwar ein paar MB Speicherplatz einsparen, es besteht jedoch die Gefahr, dass einige Apps beschädigt werden.

Da Programmierer auf Microsoft angewiesen sind, um die Visual C ++ - Laufzeitumgebung auf dem neuesten Stand zu halten, gibt Microsoft ein Sicherheitsupdate für die Weitervertreibbaren Dateien heraus. Aufgrund der Anforderungen von Programmierern ersetzen sich die Weitervertreibbaren Visual C ++ - Dateien jedoch nicht, und ältere Versionen werden aus Kompatibilitätsgründen beibehalten. Einige Apps sind sehr spezifisch bezüglich der Version der Visual C ++ - DLLs, die sie benötigen, um sicherzustellen, dass die App genau so läuft, wie sie veröffentlicht wurde. Ihre Autoren müssen ständig auf die neueste Laufzeit aktualisieren, bis sie die Kompatibilität ihrer App mit der neuen Laufzeit getestet haben. Es ist eine Möglichkeit, einige tausend Anrufe von verärgerten Kunden zu verhindern, nachdem Microsoft ein Update für die Weiterverteilungsdatei veröffentlicht hat. Die meisten Apps sind jedoch an die neueste Ausgabe 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. Mehrere Versionen von Visual C ++ - Redistributables können sogar innerhalb derselben App erforderlich sein. Wenn beispielsweise eine von Visual C ++ 2008 Redistributable abhängige App eine Komponente verwendet, die von Visual C ++ 2005 Redistributable abhängt, muss der Entwickler der App beide Versionen von Visual C ++ Redistributables ausliefern. Auf einem 64-Bit-Computer kann auf dem System sowohl die x86- als auch die x64-Edition von Visual C ++ Redistributables installiert sein, da die verteilbare Visual C ++ - Komponente eine häufig verwendete Komponente ist. Normalerweise werden sowohl 32-Bit-Apps als auch 64-Bit-Apps (oder sogar Apps, die enthält) verwendet 32-Bit-Code und 64-Bit-Code) auf einem 64-Bit-System installiert.

Sie finden die App möglicherweise bei der Installation einer weitervertreibbaren Datei, indem Sie nach einer App suchen, die dasselbe Installationsdatum wie die weitervertreibbare Datei hat. 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 das Finden der genauen Abhängigkeit aufwenden, würde die wenigen Megabytes, die Sie durch die Deinstallation der weitervertreibbaren Dateien möglicherweise sparen, wahrscheinlich nicht wert sein.

Das ist eine sehr gute Antwort. Entwickler zielen auch auf bestimmte Versionen ab. Es kann nicht garantiert werden, dass eine Funktion in Version A in Release B gleich funktioniert. Natürlich bleibt die Basis zwischen den Releases gleich. Die neuen Features Feature C, die in Release B und höher vorhanden sind, und Feature C, das nur in Version A existiert Release C ist das eigentliche Problem der Entwickler. Sie verteilen also die verwendete Version und kompilieren ihre Software, um nur diese Version zu verwenden. In diesem speziellen Fall sind mehrere Datumsversionen der C ++ Redistributables derselben Version (z. B. Februar, März, April 2005) möglich. Ramhound vor 11 Jahren 0
3
AndrejaKo

Der Grund ist, dass sie nicht dasselbe sind. Zunächst müssen Sie verstehen, dass jede Version von MSVC ++ mit einer eigenen Version von Laufzeitbibliotheken geliefert wird. Es gibt auch 32- und 64-Bit-Versionen. Außerdem gibt es Service Packs, die aktualisierte Versionen von Laufzeitbibliotheken enthalten.

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 für 2008). Service Packs sollten nicht aktualisierte Versionen ersetzen.

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 die statische oder dynamische Verknüpfung mit der Laufzeitumgebung hatte, die beim Kompilieren der Anwendung verwendet wurde. Diese können friedlich nebeneinander existieren und sind relativ klein. jtreser vor 14 Jahren 1
+2 mehr für VS2010! Aber wenn OP 10 hat, ist das zu viel. AndrejaKo vor 14 Jahren 0
Zugegeben, ich habe sie nicht gezählt. Auf meiner Maschine habe ich zwei (2008 32bit und 64bit, beide 9.0.). Ich werde sie auch zu Hause zählen. Tomalak vor 14 Jahren 0
Nun, auf der Arbeitsmaschine scheint alles in Ordnung zu sein. AndrejaKo vor 14 Jahren 0
Ich habe 12 aufgeführt. 2005 (2) (keine Spezifikation oder Version angegeben) 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 vor 12 Jahren 3
@ DarrenHall - Es ist normal, so viele zu haben. Jede Version unterscheidet sich und Sie haben Anwendungen, die auf diese bestimmten Versionen abzielen. Ramhound vor 11 Jahren 1
1
Kamiko

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

Diejenigen, die viele Programme installiert haben, haben viele Versionen. Microsoft erlaubt die Neuverteilung, sodass ein Entwickler nicht jedes Mal neuen Code erfinden muss, sondern nur einen von ihnen für Sie auswählt.

Sie sind winzig und nicht groß genug, um sich Sorgen zu machen. Viele davon sind nur KB, einige wenige MB und besser als Programme mit einem GB.

Ich weiß, es ist erfreulich, viele von ihnen dort zu sehen (ich habe 21 davon), aber lassen Sie sie in Ruhe, Ihre Programme werden heruntergefahren, wenn Sie sie entfernen. Es wäre auch schön, wenn Programmentwickler sie auch für das einzelne Programm benennen würden, aber wenn sie es taten, hätten Sie Hunderte mehr. Im Moment werden die Programme per Huckepack abgehängt, sodass Programme sowohl alte als auch neue Codierungen verwenden können.

Ich habe einen Abschluss in Computer-Networking. Ich würde dir nichts zu deinem Computer sagen, was ich nicht zu meinem eigenen tun würde