Freigeben über


DirectX-Installation für Spieleentwickler

Dieser Artikel soll einige der häufig gestellten Fragen zur DirectX-Laufzeit behandeln und DirectSetup zum Installieren von DirectX verwenden.

Wichtig

Das legacy DirectX SDK ist am Ende der Lebensdauer verfügbar, aber es ist weiterhin verfügbar, um alte Spiele, Lernprogramme und Projekte zu unterstützen. Neue Projekte sollten sie nicht verwenden. Für die Verwendung des legacy DirectX SDK ist die Verwendung des veralteten DirectSetup für Komponenten wie D3DX9, D3DX10, D3DX11, XAudio 2.7, XInput 1.3 und XACT erforderlich. Weitere Informationen zum aktuellen Status des DirectX SDK finden Sie unter Wo befindet sich das DirectX SDK?und der Blogbeitrag Nicht so direct Setup.

DirectX-Runtime

Die DirectX-Laufzeit besteht aus Kernkomponenten und optionalen Komponenten.

Die Kernkomponenten wie Direct3D und DirectInput gelten als Teil des Betriebssystems. Die Kernkomponenten für DirectX 9.0c haben sich seit dem DirectX SDK Summer 2004 Update nicht geändert, und sie stimmen mit microsoft Windows XP SP2, Windows XP Pro x64 Edition und Windows Server 2003 SP1 überein. Windows Vista enthält DirectX 10, das das Windows Display Driver Model (WDDM) und Direct3D 10.x unterstützt. Windows 7 und Windows Vista unterstützen DirectX 11, das Direct3D 11, Direct2D, DirectWrite, das WARP10-Softwarerenderinggerät und die Featureebenen 10level9 unterstützt. Weitere Informationen finden Sie unter Grafik-APIs in Windows.

Die optionalen Komponenten werden in Updates des DirectX SDK veröffentlicht und enthalten D3DX, XACT, XAudio2, XINPUT, Managed DirectX und andere solche Komponenten. Viele der optionalen Komponenten werden regelmäßig aktualisiert, um Kundenfeedback zu integrieren und neue Features verfügbar zu machen.

DirectX-Versionsnummer

Die Versionsnummer von DirectX, z. B. 9.0c, bezieht sich nur auf die Version der Kernkomponenten, z. B. Direct3D, DirectInput oder DirectSound. Diese Zahl deckt nicht die Versionen der verschiedenen optionalen Komponenten ab, die im DirectX SDK veröffentlicht werden, z. B. D3DX, XACT, XINPUT usw.

Im Allgemeinen ist die DirectX-Versionsnummer nicht aussagekräftig, außer als Kurzübersicht über die kernigen Laufzeitbits. Diese Zahl sollte nicht verwendet werden, um zu überprüfen, ob die richtige DirectX-Laufzeit bereits installiert ist, da die optionalen DirectX-Komponenten nicht berücksichtigt werden.

DirectX-Bibliotheken

In der Vergangenheit wurden die optionalen Komponenten des DirectX SDK, einschließlich D3DX, als statische Bibliotheken veröffentlicht. Diese werden jedoch aufgrund der erhöhten Nachfrage nach besseren Sicherheitspraktiken jetzt als dynamic-like libraries (DLL) veröffentlicht. DLLs ermöglichen die Wartung von zuvor freigegebenen Code. Wenn diese Komponenten als statische Bibliotheken bereitgestellt wurden, gibt es keine Möglichkeit, dass Microsoft Sicherheitsprobleme beheben kann, die nach der Veröffentlichung gefunden wurden.

Da Features zu den optionalen Komponenten hinzugefügt oder geändert werden, werden die Namen der entsprechenden DLLs ebenfalls geändert, um sicherzustellen, dass keine Regressionen auf vorhandene Spiele zurückzuführen sind, die freigegebene Komponenten verwenden. Die DLLs für jede Komponente stehen nebeneinander, und Spieleentwickler können genau auswählen, welche DLL-Version das Spiel verwendet, indem sie mit der entsprechenden Importbibliothek verknüpft werden.

Während sie sicherstellen, dass DLLs auf einem System installiert sind, nicht so einfach ist wie das einfache Verknüpfen mit statischen Bibliotheken, wurden einige Änderungen am DirectX SDK vorgenommen, um den Schmerz des DLL-Modells zu beheben:

  • Die Verteilerversion von DirectX kann so konfiguriert werden, dass nur die Komponenten enthalten sind, die Ihre Anwendung benötigt, um verteilungs- und Mediengrößen zu minimieren.
  • Der verteilbare Ordner, die Datei "Programme"\DirectX SDK\Redist\, now contains a cabinet (.cab) für jede mögliche optionale Komponente, sodass Sie kein älteres SDK suchen müssen, um sie zu finden.
  • Beim Installieren des SDK selbst werden alle möglichen optionalen Komponenten installiert.
  • Eine Verteilerversion von DirectX, die alle optionalen Komponenten enthält, ist sowohl als webbasiertes Installationsprogramm als auch als herunterladbares Paket verfügbar; weitere Informationen finden Sie im DirectX Developer Center (DirectX-).

Installation von DirectX durch das Installationsprogramm des Spiels

Im Folgenden finden Sie die bewährten Methoden zum Hinzufügen von DirectX zum Installationsprogramm eines Spiels:

Ausdruck Beschreibung
Installieren Sie die weiterverteilbaren Komponenten jedes Mal.
Der Installationsprozess eines Spiels sollte die weiterverteilbaren DirectX-Komponenten während jeder einzelnen Installation installieren, ohne benutzern das Abmelden zu ermöglichen. Wenn Sie die Abmeldung zulassen, erraten einige Benutzer, dass sie es nicht benötigen, und wenn sie tatsächlich tun, wird das Spiel nicht ausgeführt.
Lassen Sie das DirectX-Installationsprogramm auf optionale Komponenten überprüfen.
Gehen Sie nicht davon aus, dass die neuesten optionalen Komponenten bereits auf einem System installiert sind, da Windows Update und Service Packs keine optionalen Komponenten von DirectX bereitstellen. Sie müssen die DirectX-Laufzeit entweder installieren, indem Sie dxsetup.exe direkt ausführen oder DirectSetup aufrufen.
Im Hintergrund einrichten.
Starten Sie setup im unbeaufsichtigten Modus, damit Benutzer die Aktualisierung der DirectX-Laufzeit nicht versehentlich überspringen. Dazu können Sie dxsetup.exe mit dem folgenden Befehl starten:
   path-to-redistributable\dxsetup.exe /silent
oder indem Sie DirectSetup aufrufen und keine Benutzeroberfläche anzeigen.
Kombinieren von EULA-Akzeptanzen.
Wenn Sie den Benutzer auffordern, einen EULA zu akzeptieren, kombinieren Sie dies mit der Aufforderung zur Annahme des DirectX-EULA bei der Installation im unbeaufsichtigten Modus, sodass die Aufforderung zur Annahme von EULAs nur einmal erfolgt. Die Aufforderung sollte erfolgen, bevor Sie etwas installieren, sodass Sie, wenn der Benutzer dies nicht akzeptiert, nicht mit einer fehlgeschlagenen und teilweisen Installation enden.
Führen Sie einfach dxsetup aus, oder rufen Sie DirectSetup auf.
Da sich die Versionsnummer von DirectX nicht auf alles bezieht, außer auf die wichtigsten DirectX-Komponenten, überprüfen Sie keine installierte Version, bevor Sie dxsetup.exe ausführen oder DirectSetup aufrufen. Überprüfen Sie außerdem nicht, ob eine Datei vorhanden ist, um zu testen, ob eine optionale Komponente bereits installiert ist, da dies in der Regel nicht ordnungsgemäß bestimmt, wann eine Komponente vorhanden ist, aber aktualisiert werden muss. Das DirectX-Setuppaket legt dies jedoch schnell fest und führt die richtige Aktion aus.

Kleine Installationspakete

Sie können kleinere Installationspakete für DirectX erstellen, indem Sie den Inhalt des verteilbaren DirectX-Ordners bis zu dem minimalen Satz von Dateien entfernen, die erforderlich sind, damit das Installationsprogramm funktioniert, und alle zusätzlichen Komponenten beibehalten werden, die Ihr Spiel verwendet.

Je nach Ihren Mindestspezifikationen müssen Sie möglicherweise nicht einmal die wichtigsten DirectX 9.0c-Cab-Dateien in den verteilbaren Ordner Ihrer Installationsmedien einschließen. Eine große Mehrheit der Windows XP-Installationen verfügt über Service Pack 2, das die wichtigsten DirectX 9.0c-Komponenten enthält, sodass der DirectX-Setupvorgang sehr schnell ist und keinen Neustart erfordert. Das kleinste Paket, das erstellt werden kann, beträgt etwa 3 MB, und es kann auf etwa die Hälfte dieser Größe komprimiert werden. Ein Paket wie dieses enthält eine Version der D3DX-DLL, und es erfordert, dass DirectX 9.0c bereits vorhanden ist.

Der minimale Satz von Dateien, die zum Erstellen eines verteilbaren Pakets erforderlich sind, sind die folgenden Dateien, die sich im Ordner "DirectX SDK Redist" (Programme\DirectX SDK\Redist) befinden:

  • dxsetup.exe
  • dsetup32.dll
  • dsetup.dll
  • dxupdate.cab

Fügen Sie diese Cab-Dateien für die Komponenten hinzu, die Sie installieren möchten. Wenn Die Benutzer Ihrer Anwendung bereits Über DirectX 9.0c verfügen müssen, müssen Sie keine DirectX.cab oder dxnt.cabeinschließen, die den größten Teil der Speicherplatzanforderung bilden. DirectX.cab ist nur für Windows 98 und Windows ME erforderlich; dxnt.cab ist nur für Windows 2000, Windows XP und Windows XP SP1 erforderlich; und dxdllreg_x86.cab ist nur für Windows 2000, Windows XP RTM, Windows XP SP1 und Windows Server 2003 RTM erforderlich. Wenn Sie DirectShow nicht verwenden oder davon ausgehen, dass sie bereits installiert ist, können Sie BDA.cab, BDANT.cabund BDAXP.cabweglassen.

Anmerkung

Sie können davon ausgehen, dass Benutzer Ihrer Anwendung bereits Über DirectX 9.0c verfügen, wenn sie von einer früheren Version Ihrer Anwendung installiert wurde, Sie benutzer zwingen, manuell über den Web Installer zu aktualisieren, oder Sie gehen davon aus, dass sie Über Windows XP SP2 oder höher verfügen.

Wenn Sie nur die 32-Bit-Version von D3DX für April 2006 verwenden, können Sie Apr2006_d3dx9_30_x86.cabhinzufügen. Wenn Sie die 32-Bit-Version vom August 2006 32-Bit von XINPUT verwenden, fügen Sie Aug2006_xinput_x86.cabhinzu.

Wenn Sie über eine systemeigene 64-Bit-Anwendung verfügen, müssen Sie die _x64 Versionen hinzufügen. Wenn Sie jedoch über eine 32-Bit-Anwendung verfügen, die auf einem 64-Bit-Betriebssystem ausgeführt wird, funktionieren die 32-Bit-Versionen der DLLs.

Anschließend können Sie dieses Paket von Dateien verteilen und DirectSetup im unbeaufsichtigten Modus starten oder dxsetup.exe in der Befehlsshell im unbeaufsichtigten Modus ausführen. Denken Sie daran, dieses Paket nicht durch eine Versionsüberprüfung von Dateien zu schützen, und stellen Sie sicher, dass Ihre Benutzer die Ausführung des DirectX-Setups nicht deaktivieren können. Eines dieser Ereignisse erstellt einen falliblen Installationsprozess.

Interne Bereitstellung der Debug-DirectX-Runtime

Die Debuglaufzeiten der DirectX-Komponenten werden installiert, wenn das DirectX SDK installiert wird, aber die Installation des SDK auf jedem Testcomputer kann schmerzhaft sein. Sie müssen ihren Setupprozess entwerfen, um die Debuglaufzeit-DLLs aus "Programme\Microsoft DirectX SDK\Developer Runtime\architecture\" in Windows\system32\ oder in den Ordner des Spiels zu kopieren.

Es wird jedoch dringend empfohlen, die veröffentlichten Laufzeit-DLLs nicht einfach zu kopieren, da es leicht ist, sie für das Endprodukt zu entfernen. Platzieren Sie stattdessen die DirectX-Setupdateien in einem freigegebenen Ordner, und führen Sie das Setup im Hintergrund aus dem freigegebenen Ordner aus.

Desktop-Brücke-Anwendungen

Desktop-Brücke-Anwendungen, die D3DX9, D3DX10, D3DX11, XAudio 2.7, XInput 1.3 oder XACT verwenden, müssen entweder die Microsoft.DirectX.x86- oder das Microsoft.DirectX.x64- Framework herunterladen, um diese legacy DirectX SDK nebeneinander bereitzustellen. Alternativ können Sie alle solchen Abhängigkeiten entfernen (siehe Entwicklerhandbuch für die weitervertreibbare Version von XAudio 2.9und die Blogbeiträge Living ohne D3DX- und XINPUT und Windows 8).