Wie kann Dampf daran gehindert werden, eine Milliarde Exemplare von DirectX herunterzuladen?

Als Nachfolge meiner Frage bezüglich der Erstinstallation habe ich bemerkt, dass Steam die DirectX- und Vcredist-Software-Dateien einzeln in jedem Spiele-Verzeichnis speichert. Das bedeutet, dass manchmal bis zu 100 MB heruntergeladen und gespeichert werden immer wieder verschwenden sowohl Platz und Download-Zeit.

Kann man sich vor dem erneuten Herunterladen und Vervielfältigen von Spielanforderungen wie DirectX immer wieder verhindern lassen?

Das Problem wurde auf den Steam Forums diskutiert. Das Problem ist, dass jedes Spiel eine binär-identische Version der vc ++ redistributables haben muss. Da Spiele gegen verschiedene Versionen dieser Bibliotheken verknüpft sind, installiert Dampf immer das erste Mal als Sicherung.

Kredit zu mordi2k für die Suche nach der Post
Hier ist ein Link zum Dampf-Forum Post über es. Der Text wird unten zitiert.

FYI, läuft dies ist nicht eine Frage der sicherstellen, dass Ihre gesamte DirectX-Installation auf dem neuesten Stand ist. Microsoft hat eine Hilfsbibliothek mit D3D namens D3DX. Hier finden Sie Binärdateien wie d3dx9_43.dll in Ihrem Windows \ System32 Ordner. Es gibt über 40 verschiedene Versionen der D3DX-Bibliothek für D3D9 alleine und vieles mehr für D3D10 und 11. Jedes Spiel, das die D3DX Helper-Bibliothek verwendet, ist mit einer bestimmten Version verknüpft. Als solches muss das Spiel die korrekte D3D-Installationsversion ausführen, die es speziell kompiliert wurde, um sicherzustellen, dass die Binärdateien existieren. Auch wenn eine spätere Version der Binärdatei bereits installiert ist, kann diese Version nicht verwendet werden, und selbst wenn Ihre DirectX-Installation aktuell ist, weil Sie eine neuere Version des Installationsprogramms ausgeführt haben, die nicht garantiert ist, dass sie alle installiert haben vorherige Versionen. Noch schlimmer, wenn eine Version für x86 installiert ist, garantiert es nicht, dass die gleiche Version für x64 installiert ist, so dass 64-Bit- und 32-Bit-Spiele möglicherweise die gleiche exakte Installationsversion ausführen müssen, aber auf andere Plattformen ausgerichtet sind, wenn sie ausgeführt werden. Darüber hinaus verhindern Microsoft-Lizenzbestimmungen jedermann, die Dateien direkt zu verteilen, die einzige Möglichkeit, sie zu verteilen, ist, das Installationsprogramm auszuführen, das ist auch die einzige unterstützte Methode von Microsoft, um zu überprüfen, ob die richtige Version installiert ist. Der Versuch, die korrekten Versionen manuell zu überprüfen, ist äußerst kompliziert, da es zahlreiche Dateien gibt, die alle vorhanden sein müssen und einzelne Systemkonfigurationsoptionen wie dll-Suchpfade die Situation komplizieren. Darüber hinaus können sich die Abhängigkeiten und erforderlichen Prüfungen in jeder neuen Version der D3DX-Laufzeit ändern. Der Code, um korrekt zu überprüfen und defekte Installationen zu reparieren, existiert alle im Installateur und läuft es ist eine Garantie, dass die korrekten Binärdateien existieren, wenn du das Spiel ausführt und viele schlechte Fälle verhindert, in denen ein Spiel mit einem obskuren Fehler nicht starten würde Windows-Installation war entweder fehlt die richtige Version oder irgendwie in der Vergangenheit beschädigt.

Spiele, die die D3DX-Helfer nicht nutzen (z. B. Source-Engine-Spiele), verlangen nicht, den lästigen Installateur beim ersten Start zu starten, da sie nur von großen d3d9 / 10/11-Versionen abhängen. Allerdings müssen Spiele, die D3DX verwenden, es ausführen, da es die einzige Möglichkeit ist, die Microsoft für die Verteilung und Überprüfung der Versionsinformationen auf den Dateien erlaubt hat.

Deshalb machen wir es für viele Spielinstallationen. Wir können nicht aufhören, es ist aufgrund eines schlechten Versionierungs- / Verpackungsschemas sowie schlechter Umverteilungslizenzbedingungen auf den D3DX-Bibliotheken erforderlich.

Die eine Sache, die auf unserer Seite besser gemacht werden könnte, ist, dass Steam schlau genug sein könnte, um zu wissen, ob eine genau abgestimmte Version des dx-Installationsprogramms bereits heruntergeladen und diese Inhalte freigegeben wird, so dass du sie nicht mit jedem Spiel herunterladen kannst. Da der Installateur relativ klein ist, verglichen mit den meisten Spielinstallationen, die nicht ein großer Gewinn sein würden und erfordert viel neue Komplexität für Partner, wie sie ihre Spiele verpacken und Installationsabhängigkeiten verwalten. Sie würden auch noch mit vielen verschiedenen Versionen des Installateurs enden, da, wie oben diskutiert, sie häufig auf verschiedene D3DX Versionen zielen und als solche alle erforderlich sind. Als solche ist jede Verbesserung, um Duplikate zu vermeiden, keine unmittelbare Priorität, aber wir können es in der Lage sein, es in der Zukunft etwas zu verbessern.