Megosztás a következőn keresztül:


DirectX-telepítés játékfejlesztőknek

Ez a cikk a DirectX-futtatókörnyezetre vonatkozó gyakori kérdéseket ismerteti, és a DirectX telepítéséhez használja a DirectSetupot.

Fontos

Az örökölt DirectX SDK az élettartam végén van, de továbbra is elérhető a régi játékok, oktatóanyagok és projektek támogatásához. Az új projektek nem használhatják. Az örökölt DirectX SDK használatához szükség van az elavult DirectSetup használatára olyan összetevőkhöz, mint a D3DX9, a D3DX10, a D3DX11, a XAudio 2.7, az XInput 1.3 és az XACT. A DirectX SDK aktuális állapotáról további információt Hol található a DirectX SDK?, és a blogbejegyzés Nem így közvetlen beállítás.

DirectX-futtatókörnyezet

A DirectX-futtatókörnyezet alapvető összetevőkből és választható összetevőkből áll.

Az olyan alapvető összetevők, mint a Direct3D és a DirectInput, az operációs rendszer részét képezik. A DirectX 9.0c alapvető összetevői a DirectX SDK 2004. nyári frissítése óta nem változtak, és megegyeznek a Microsoft Windows XP SP2, a Windows XP Pro x64 Edition és a Windows Server 2003 SP1 kiadásával. A Windows Vista tartalmazza a DirectX 10-et, amely támogatja a Windows megjelenítési illesztőprogram-modellt (WDDM) és a Direct3D 10.x-et. A Windows 7 és a Windows Vista támogatja a DirectX 11-et, amely támogatja a Direct3D 11, a Direct2D, a DirectWrite, a WARP10 szoftvermegjelenítő eszközt és a 10level9 szolgáltatásszinteket. További részletekért lásd Grafikus API-kat a Windows-ben.

Az opcionális összetevők megjelennek a DirectX SDK frissítéseiben, és ezek közé tartoznak a D3DX, az XACT, az XAudio2, a XINPUT, a Felügyelt DirectX és más ilyen összetevők. Az opcionális összetevők közül sok rendszeresen frissül az ügyfelek visszajelzéseinek integrálásához és az új funkciók elérhetővé tételéhez.

DirectX-verziószám

A DirectX-verziószám( például 9.0c) csak az alapvető összetevők (például Direct3D, DirectInput vagy DirectSound) verziójára vonatkozik. Ez a szám nem tartalmazza a DirectX SDK-ban kiadott különböző választható összetevők( például D3DX, XACT, XINPUT stb.) verzióit.

Általánosságban elmondható, hogy a DirectX-verziószám nem értelmezhető, kivéve az alapvető futásidejű bitekre mutató gyorshivatkozást. Ez a szám nem használható annak ellenőrzésére, hogy a megfelelő DirectX-futtatókörnyezet már telepítve van-e, mert nem veszi figyelembe az opcionális DirectX-összetevőket.

DirectX-kódtárak

Korábban a DirectX SDK választható összetevői, köztük a D3DX is statikus kódtárakként jelentek meg. Ezek azonban most dinamikus kódtárként (DLL) jelennek meg, mivel egyre nagyobb az igény a jobb biztonsági eljárásokra. A DLL-ek lehetővé teszik a korábban kiadott kód karbantartását. Ha ezek az összetevők statikus kódtárként lettek üzembe helyezve, a Microsoft nem tudná kezelni a kiadás után felmerülő biztonsági problémákat.

Mivel a funkciók hozzáadódnak vagy módosulnak az opcionális összetevőkre, a megfelelő DLL-ek neve is módosul, hogy ne okozzon regressziót a már meglévő, kiadott összetevőket használó játékok. Az egyes összetevők DLL-címei egymás mellett élnek, a játékfejlesztők pedig a megfelelő importálási kódtárra kattintva kiválaszthatják, hogy pontosan melyik DLL-verziót használják a játék.

Annak biztosítása, hogy a DLL-ek telepítése nem olyan egyszerű, mint a statikus kódtárak összekapcsolása, a DirectX SDK-n módosításokat hajtottak végre a DLL-modell fájdalmának kezelése érdekében:

  • A DirectX terjeszthető úgy konfigurálható, hogy csak azokat az összetevőket tartalmazza, amelyekre az alkalmazásnak szüksége van a terjesztési és médiaméretek minimalizálásához.
  • A Program Files\DirectX SDK\Redist\, now contains a cabinet (.cab) nevű terjeszthető mappa fájlja minden lehetséges választható összetevőhöz, így nem kell megkeresnie egy régebbi SDK-t.
  • Maga az SDK telepítése minden lehetséges összetevőt telepít.
  • Az összes választható összetevőt tartalmazó DirectX-terjesztő webalapú telepítőként és letölthető csomagként is elérhető; További információt a DirectX Fejlesztői központban (DirectX) talál.

A DirectX telepítése a játék telepítője által

Az alábbi ajánlott eljárások a DirectX telepítésének a játék telepítőjének hozzáadásához:

Kifejezés Leírás
Telepítse az terjeszthető összetevőket minden alkalommal.
A játék telepítési folyamatának minden egyes telepítés során telepítenie kell a DirectX terjeszthető összetevőit anélkül, hogy a felhasználók lemondhatják azt. Ha engedélyezi a lemondást, akkor néhány felhasználó azt fogja kitalálni, hogy nincs rá szüksége, és ha valóban így van, a játék nem fog futni.
Hagyja, hogy a DirectX-telepítő ellenőrizze az opcionális összetevőket.
Ne feltételezzük, hogy a legújabb választható összetevők már telepítve vannak egy rendszeren, mert a Windows Update és a szervizcsomagok nem biztosítják a DirectX választható összetevőit. A DirectX-futtatókörnyezetet közvetlenül dxsetup.exe vagy a DirectSetup meghívásával kell telepítenie.
Beállítás csendben.
Indítsa el a telepítést csendes módban, hogy a felhasználók véletlenül ne hagyják ki a DirectX-futtatókörnyezet frissítését. Ehhez indítsa el a dxsetup.exe a következő paranccsal:
   path-to-redistributable\dxsetup.exe /silent
vagy a DirectSetup meghívásával, és nem jelenít meg felhasználói felületet.
EULA-elfogadások egyesítése.
Ha arra kéri a felhasználót, hogy fogadja el az EULA-t, akkor ezt kombinálja a DirectX EULA elfogadásának kérésével csendes módban történő telepítéskor, hogy az EULA-k elfogadásának kérése csak egyszer történjen meg. A kérésnek a telepítés előtt kell történnie, hogy ha a felhasználó nem fogadja el, ne legyen sikertelen és részleges telepítés.
Csak futtassa a dxsetup parancsot, vagy hívja meg a DirectSetup parancsot.
Mivel a DirectX-verziószám nem hivatkozik semmire, csak az alapvető DirectX-összetevőkre, ne ellenőrizze a telepített verziót a dxsetup.exe futtatása vagy a DirectSetup hívása előtt. Emellett ne ellenőrizze egy fájl létezését, hogy tesztelje, hogy egy választható összetevő már telepítve van-e, mivel ez általában nem fogja helyesen meghatározni, hogy mikor létezik egy összetevő, de frissítenie kell. A DirectX telepítőcsomagja azonban gyorsan meghatározza ezt, és végrehajtja a megfelelő műveletet.

Kis telepítési csomagok

Létrehozhat kisebb telepítési csomagokat a DirectX-hez úgy, hogy a DirectX terjeszthető mappájának tartalmát a telepítő működéséhez szükséges minimális fájlkészletre veti le, és megtartja a játék által használt további összetevőket.

A minimális specifikációktól függően előfordulhat, hogy még az alapvető DirectX 9.0c szekrényfájlokat sem kell belefoglalnia a telepítési adathordozó terjeszthető mappájába. A Windows XP-telepítések nagy többsége rendelkezik Service Pack 2 csomaggal, amely tartalmazza az alapvető DirectX 9.0c-összetevőket, így a DirectX telepítési művelete nagyon gyors lesz, és nem igényel újraindítást. A legkisebb létrehozható csomag körülbelül 3 MB, és körülbelül a méret felére tömöríthető. Az ilyen csomagok a D3DX DLL egy verzióját tartalmazzák, és megköveteli, hogy a DirectX 9.0c már jelen legyen.

Az újraterjeszthető csomagok létrehozásához szükséges minimális fájlkészlet a Következő fájlok, amelyek a DirectX SDK Redist mappában találhatók (Program Files\DirectX SDK\Redist):

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

Adja hozzá ezeket a szekrényfájlokat a telepíteni kívánt összetevőkhöz. Ha azt szeretné, hogy az alkalmazás felhasználói már rendelkezzenek DirectX 9.0c-vel, akkor nem kell DirectX.cab vagy dxnt.cabtartalmaznia, amelyek a legtöbb helyigényt teszik ki. DirectX.cab csak a Windows 98-hoz és a Windows ME-hez szükséges; dxnt.cab csak Windows 2000, Windows XP és Windows XP SP1 esetén szükséges; és dxdllreg_x86.cab csak Windows 2000, Windows XP RTM, Windows XP SP1 és Windows Server 2003 RTM esetén szükséges. Ha nem használja a DirectShow-t, vagy feltételezi, hogy már telepítve van, kihagyhatja BDA.cab, BDANT.cabés BDAXP.cab.

Jegyzet

Feltételezheti, hogy az alkalmazás felhasználói már rendelkeznek DirectX 9.0c-vel, ha az alkalmazás egy korábbi verziója telepítette, a felhasználókat manuálisan kell frissíteni a webtelepítőn keresztül, vagy feltételezheti, hogy Windows XP SP2 vagy újabb verzióval rendelkeznek.

A példával folytatva, ha csak a D3DX 32 bites verzióját használja 2006 áprilisában, hozzáadhat Apr2006_d3dx9_30_x86.cab. Ha a XINPUT 32 bites 2006. augusztusi 32 bites verzióját használja, Aug2006_xinput_x86.cab.

Ha natív 64 bites alkalmazással rendelkezik, hozzá kell adnia a _x64 verziókat. Ha azonban egy 64 bites operációs rendszeren futó 32 bites alkalmazással rendelkezik, a DLL-ek 32 bites verziói működni fognak.

Ezután terjesztheti ezt a fájlcsomagot, és elindíthatja a DirectSetupot csendes módban, vagy futtathat dxsetup.exe a parancshéjban csendes módban. Ne feledje, hogy a fájlok verzióellenőrzésével ne őrizze meg ezt a csomagot, és győződjön meg arról, hogy a felhasználók nem tudják kikapcsolni a DirectX-beállítás futtatását. Ezen események bármelyike esendő telepítési folyamatot hoz létre.

A DirectX-futtatókörnyezet hibakeresésének belső üzembe helyezése

A DirectX-összetevők hibakeresési futtatókörnyezetei a DirectX SDK telepítésekor települnek, de az SDK telepítése minden tesztszámítógépre fájdalmas lehet. Meg kell terveznie a telepítési folyamatot, hogy a hibakeresési futtatókörnyezeti DLL-eket a Program Files\Microsoft DirectX SDK\Developer Runtime\architecture\ fájlból a Windows\system32\-be vagy a játék mappájába másolja.

Határozottan javasoljuk azonban, hogy ne másolja egyszerűen a kiadott futásidejű DLL-eket, mert könnyen elfelejtheti eltávolítani őket a végső termékhez. Ehelyett helyezze a DirectX telepítőfájljait egy megosztott mappába, és futtassa csendben a telepítőt a megosztott mappából.

Asztalihíd-alkalmazások

A D3DX9, D3DX10, D3DX11, XAudio 2.7, XInput 1.3 vagy XACT rendszerű asztali bridge-alkalmazásoknak le kell tölteniük a Microsoft.DirectX.x86 vagy a Microsoft.DirectX.x64 keretrendszert az örökölt DirectX SDK párhuzamos összetevőinek üzembe helyezéséhez. Másik lehetőségként eltávolíthatja az összes ilyen függőséget (lásd XAudio 2.9terjeszthető verziójának fejlesztői útmutatóját, valamint a D3DX nélküli élet, valamint a XINPUT és a Windows 8nélküli életről szóló blogbejegyzés eket).