> ## Documentation Index
> Fetch the complete documentation index at: https://devdocs.xbox.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Dépendances de packages d'infrastructure

> Dépendances de packages d'infrastructure

Si votre application s'appuie sur un logiciel redistribuable disponible dans le Microsoft Store sous forme de package d'infrastructure, au lieu d'installer le redistribuable en chaîne, vous pouvez déclarer une dépendance au package d'infrastructure. Toutefois, n'utilisez pas cette méthode si le Microsoft Store ne propose aucun package d'infrastructure pour le redistribuable dont vous dépendez. Envisagez plutôt des actions d'installation personnalisées.

## Détails

* Développez votre application de la manière habituelle en référençant les bibliothèques d'exportation du redistribuable requis.

* Au lieu de regrouper le redistribuable dépendant avec votre application, mettez à jour votre manifeste pour déclarer la dépendance au package d'infrastructure concerné.

* Lorsque l'utilisateur installe votre application à partir du Microsoft Store, celui-ci détecte la dépendance et veille à ce que le package d'infrastructure soit mis à la disposition de l'application.

  Si le package d'infrastructure est déjà installé sur l'appareil de l'utilisateur, aucune autre action n'est nécessaire. Sinon, le Microsoft Store déclenche l'installation du package d'infrastructure avant de poursuivre l'installation de l'application qui l'utilise.

* Une build x86 d'une application utilise une build x86 du package d'infrastructure. Une build x64 de l'application utilise une build x64 du package d'infrastructure. Vous n'avez rien à faire pour spécifier l'architecture. La plateforme s'en charge pour vous.

## Runtime DirectX

Ce package d'infrastructure fournit divers composants facultatifs côte à côte issus de l'ancien SDK DirectX. Si votre application utilise les bibliothèques utilitaires Direct3D dépréciées D3DX9, D3DX10 ou D3DX11, XAudio 2.7, XInput 1.3 ou XACT, ce package peut être utilisé pour déployer ces DLL dépréciées pour votre application de bureau Win32 empaquetée. Pour plus d'informations sur ces composants, consultez [ce billet de blog](https://aka.ms/dxsetup).

<Note>La grande majorité des titres qui utilisent DirectX n'ont PAS réellement besoin de cette dépendance au package d'infrastructure de l'« ancien SDK DirectX ».</Note>

```
D3DCompiler_33.dl - D3DCompiler_43.dll
d3dcsx_42.dll, d3dcsx_43.dll
d3dx10.dll, d3dx10_33.dll - d3dx10_43.dll
d3dx11_42.dll, d3dx11_43.dll
d3dx9_24.dll - D3DX9_43.dll
```

```
x3daudio1_0.dll - X3DAudio1_7.dll
xactengine2_0.dll - xactengine2_9.dll
xactengine3_0.dll - xactengine3_7.dll
XAPOFX1_0.dll - XAPOFX1_5.dll
XAudio2_0.dll - XAudio2_7.dll
```

```
xinput1_1.dll - xinput1_3.dll
```

Vous pouvez également mettre à jour votre application pour supprimer les dépendances à l'[ancien SDK DirectX](https://learn.microsoft.com/windows/win32/directx-sdk--august-2009-).

* Pour **XAudio2**, la meilleure option consiste à passer à XAudio 2.9 à l'aide des en-têtes du SDK Windows 10. Sous Windows 10, XAudio 2.9, X3DAudio et XAPOFX sont tous intégrés au système d'exploitation. Pour vos versions hors Store, vous pouvez utiliser [XAudio2Redist](https://aka.ms/XAudio2Redist), qui fournit un redistribuable local à l'application simple prenant en charge XAudio2.9 sous Windows 7 SP1 ou version ultérieure. Cela simplifie le déploiement et corrige de nombreux bogues connus de l'ancienne version XAudio 2.7. Consultez [Microsoft Docs](https://learn.microsoft.com/windows/win32/xaudio2/xaudio2-versions).

* Pour **XInput**, la meilleure option consiste à utiliser XInput 1.4 à l'aide des en-têtes du SDK Windows 10. Sous Windows 10, XInput 1.4 est inclus dans le système d'exploitation. Pour vos versions hors Store, vous pouvez utiliser XInput 9.1.0, qui est inclus dans le système d'exploitation depuis Windows Vista. Consultez [ce billet de blog](https://aka.ms/Mu9kn7).

> L'utilisation de l'ancienne version XInput 1.3 est fortement déconseillée, car elle présente des problèmes de sécurité connus. La version incluse dans le package d'infrastructure a été mise à jour pour atténuer ce problème et passer à la signature de code SHA-256, mais le package d'origine DirectX End-User Runtime hérité n'a pas été modifié.

* Pour **Direct3D 10** (`d3dx10`), la meilleure option consiste à passer à Direct3D 11. Consultez [Microsoft Docs](https://learn.microsoft.com/windows/win32/direct3d11/d3d11-programming-guide-migrating).

* Pour **Direct3D 11** (`d3dx11`), consultez [ce billet de blog](https://aka.ms/Kfsdiu) pour découvrir différentes solutions de remplacement de l'ancienne bibliothèque D3DX pour Direct3D 11.

> Pour les titres plus anciens, vous pouvez également envisager d'utiliser le package NuGet [Microsoft.DXSDK.D3DX](https://www.nuget.org/packages/Microsoft.DXSDK.D3DX), qui fournit les versions de juin 2010 de D3DX9, D3DX10 et D3DX11 avec une licence côte à côte. Ces DLL redistribuables sont également signées avec un code SHA-256.

* Pour le **compilateur HLSL** (`D3DCompiler`), vous pouvez utiliser la dernière version disponible dans le SDK Windows 10. Sous Windows 10, il est inclus dans le système d'exploitation. Pour vos versions hors Store, vous pouvez inclure `D3DCompiler_47.dll` avec votre jeu sous forme de simple fichier local à l'application. Consultez [ce billet de blog](https://aka.ms/Tuoxjd).

<Note>Ni ce package d'infrastructure ni l'ancien DirectX End-User Redistributable ne modifient le runtime DirectX de quelque manière que ce soit.</Note>

Exemple d'extrait de `MicrosoftGame.config` :

```xml theme={null}
<Game>

  <DesktopRegistration>
    <DependencyList>
      <KnownDependency Name="DX11"/>
    </DependencyList>
  </DesktopRegistration>

</Game>
```

Il existe deux façons d'installer le package d'infrastructure DirectX sur un ordinateur de développement ou de test.

1. Téléchargez-le à partir du site Microsoft Downloads et double-cliquez sur les fichiers Appx pour l'installer (recommandé). [Package d'infrastructure DirectX x86](https://aka.ms/directx_x86_appx), [Package d'infrastructure DirectX x64](https://aka.ms/directx_x64_appx)
2. Entrez le lien suivant dans l'application Exécuter pour obtenir un exemple d'application DirectX qui installe le package de dépendance d'infrastructure DirectX. (Remarque : cela ne fonctionne que pour les ordinateurs se trouvant dans le sandbox de développement RETAIL, et seule la version de plateforme x64 sera installée si vous êtes sur un ordinateur de plateforme x64) : ms-windows-store://pdp/?productid=9MTF6XHMN17Z

<Note>Le package d'infrastructure DirectX n'installe pas ces DLL dans le dossier System32. Elles se trouvent dans le chemin de recherche de votre application empaquetée au moment de l'exécution. Si vous utilisez une liaison explicite, n'utilisez pas les indicateurs `LoadLibraryEx` `LOAD_LIBRARY_SEARCH_SYSTEM32` ou `LOAD_LIBRARY_SEARCH_APPLICATION_DIR` pour charger ces anciennes bibliothèques DirectX.</Note>

> La version 9.29.1974.0 de ce package d'infrastructure inclut des DLL de charge utile signées avec un code SHA-256, ainsi qu'un correctif de sécurité pour XInput 1.3.

## Runtime C++ de Visual Studio

Dans le cas particulier du runtime C/C++, la forme redistribuable traditionnelle et la forme de package d'infrastructure ne sont pas toujours identiques. Les applications traditionnelles hors Microsoft Store ont toujours utilisé la forme redistribuable traditionnelle.

| **Version de Visual C/C++** | **Recommandation** |
| - | - |
| 2015, 2017, 2019, 2022 | Les formes redistribuable traditionnelle et package d'infrastructure sont identiques, et vous pouvez choisir l'une ou l'autre. Toutefois, nous recommandons d'utiliser les packages d'infrastructure en tant que bonne pratique. |
| 2013 | Les applications empaquetées au format MSIXVC doivent utiliser la version d'infrastructure. Dans le cas contraire, certaines API risquent de se comporter de manière inattendue. |
| 2012 | Les applications empaquetées au format MSIXVC doivent utiliser la version d'infrastructure. Dans le cas contraire, certaines API risquent de se comporter de manière inattendue. |
| 2010 et versions antérieures | Les applications empaquetées au format MSIXVC doivent intégrer les fichiers libres du redistribuable traditionnel dans le sous-dossier approprié du dossier de l'application. Pour ces versions, ni le redistribuable traditionnel ni le package d'infrastructure ne doivent être utilisés. |

Les programmes d'installation mentionnés précédemment placent les packages d'infrastructure nécessaires dans le dossier *Extension SDKs* suivant :

%PROGRAMFILES(X86)%\Microsoft SDKs\Windows Kits\10\ExtensionSDKs

Veillez à charger indépendamment (sideload) la version qui correspond à l'architecture de votre application : x86 ou x64.

Pour tester localement votre package et ses dépendances d'infrastructure, identifiez la version de Visual Studio avec laquelle votre application a été générée, chargez indépendamment les packages d'infrastructure APPX correspondants, puis inscrivez votre application.

Pour plus d'informations, consultez [Microsoft Docs](https://learn.microsoft.com/troubleshoot/cpp/c-runtime-packages-desktop-bridge).

### Visual Studio 2012

Voici un exemple d'entrée de manifeste pour le package d'infrastructure VCLibs v11 de Visual Studio 2012.

```xml theme={null}
  <DesktopRegistration>
    <DependencyList>
      <KnownDependency Name="VC11"/>
    </DependencyList>
  </DesktopRegistration>
```

Pour charger indépendamment ce package d'infrastructure

* **x86 :**

  1. Recherchez le package d'infrastructure :

     C:\Program Files (x86)\Microsoft SDKs\Windows Kits\10\ExtensionSDKs\Microsoft.VCLibs.Desktop.110\14.0\Appx\Retail\x86\Microsoft.VCLibs.x86.11.00.Desktop.appx

  2. Double-cliquez dessus pour l'installer, ou exécutez la commande Windows PowerShell suivante :

     `add-appxpackage "C:\Program Files (x86)\Microsoft SDKs\Windows Kits\10\ExtensionSDKs\Microsoft.VCLibs.Desktop.110\14.0\Appx\Retail\x86\Microsoft.VCLibs.x86.11.00.Desktop.appx"`

* **x64 :**

  1. Recherchez le package d'infrastructure :

     C:\Program Files (x86)\Microsoft SDKs\Windows Kits\10\ExtensionSDKs\Microsoft.VCLibs.Desktop.110\14.0\Appx\Retail\x64\Microsoft.VCLibs.x64.11.00.Desktop.appx

  2. Double-cliquez dessus pour l'installer, ou exécutez la commande Windows PowerShell suivante :

     `add-appxpackage "C:\Program Files (x86)\Microsoft SDKs\Windows Kits\10\ExtensionSDKs\Microsoft.VCLibs.Desktop.110\14.0\Appx\Retail\x64\Microsoft.VCLibs.x64.11.00.Desktop.appx"`

### Visual Studio 2013

Voici un exemple d'entrée de manifeste pour le package d'infrastructure VCLibs v12 de Visual Studio 2012.

```xml theme={null}
  <DesktopRegistration>
    <DependencyList>
      <KnownDependency Name="VC12"/>
    </DependencyList>
  </DesktopRegistration>
```

Pour charger indépendamment ce package d'infrastructure

* **x86 :**

  1. Recherchez le package d'infrastructure :

     C:\Program Files (x86)\Microsoft SDKs\Windows Kits\10\ExtensionSDKs\Microsoft.VCLibs.Desktop.120\14.0\Appx\Retail\x86\Microsoft.VCLibs.x86.12.00.Desktop.appx

  2. Double-cliquez dessus pour l'installer, ou exécutez la commande Windows PowerShell suivante :

     `add-appxpackage "C:\Program Files (x86)\Microsoft SDKs\Windows Kits\10\ExtensionSDKs\Microsoft.VCLibs.Desktop.110\14.0\Appx\Retail\x86\Microsoft.VCLibs.x86.11.00.Desktop.appx"`

* **x64 :**

  1. Recherchez le package d'infrastructure :

     C:\Program Files (x86)\Microsoft SDKs\Windows Kits\10\ExtensionSDKs\Microsoft.VCLibs.Desktop.120\14.0\Appx\Retail\x64\Microsoft.VCLibs.x64.12.00.Desktop.appx

  2. Double-cliquez dessus pour l'installer, ou exécutez la commande Windows PowerShell suivante :

     `add-appxpackage "C:\Program Files (x86)\Microsoft SDKs\Windows Kits\10\ExtensionSDKs\Microsoft.VCLibs.Desktop.120\14.0\Appx\Retail\x64\Microsoft.VCLibs.x64.12.00.Desktop.appx"`

### Visual Studio 2015 - 2022

Voici un exemple d'entrée de manifeste pour le package d'infrastructure VCLibs v14 de Visual Studio 2015 ou version ultérieure.

```xml theme={null}
  <DesktopRegistration>
    <DependencyList>
      <KnownDependency Name="VC14"/>
    </DependencyList>
  </DesktopRegistration>
```

Pour charger indépendamment ce package d'infrastructure

* **x86 :**

  1. Recherchez le package d'infrastructure :

     C:\Program Files (x86)\Microsoft SDKs\Windows Kits\10\ExtensionSDKs\Microsoft.VCLibs.Desktop\14.0\Appx\Retail\x86\Microsoft.VCLibs.x86.14.00.Desktop.appx

  2. Double-cliquez dessus pour l'installer, ou exécutez la commande Windows PowerShell suivante :

     `add-appxpackage "C:\Program Files (x86)\Microsoft SDKs\Windows Kits\10\ExtensionSDKs\Microsoft.VCLibs.Desktop\14.0\Appx\Retail\x86\Microsoft.VCLibs.x86.14.00.Desktop.appx"`

* **x64 :**

  1. Recherchez le package d'infrastructure :

     C:\Program Files (x86)\Microsoft SDKs\Windows Kits\10\ExtensionSDKs\Microsoft.VCLibs.Desktop\14.0\Appx\Retail\x64\Microsoft.VCLibs.x64.14.00.Desktop.appx

  2. Double-cliquez dessus pour l'installer, ou exécutez la commande Windows PowerShell suivante :

     `add-appxpackage "C:\Program Files (x86)\Microsoft SDKs\Windows Kits\10\ExtensionSDKs\Microsoft.VCLibs.Desktop\14.0\Appx\Retail\x64\Microsoft.VCLibs.x64.14.00.Desktop.appx"`

N'oubliez pas que VS 2015 Update 3, VS 2017, VS 2019 et VS 2022 utilisent tous le même REDIST, celui de VS 2022 étant le plus récent. Pour plus d'informations, consultez [Microsoft Docs](https://learn.microsoft.com/cpp/porting/binary-compat-2015-2017).

## Test local

Après avoir inclus les références dans le manifeste approprié et chargé indépendamment le package d'infrastructure APPX, installez la version en fichiers libres de votre application à l'aide de la commande suivante :

`WdApp.exe register loose_build_path`

Cela garantit que votre application est installée et qu'elle référence l'infrastructure appropriée. Exécutez ensuite votre application à partir de sa vignette dans le menu Démarrer, puis effectuez les étapes de test et de validation nécessaires pour votre application.

Une fois les tests terminés dans la configuration de chargement indépendant, créez un package MSIXVC en suivant les instructions de la rubrique [Prise en main de l'empaquetage de titres pour PC à l'aide des outils d'empaquetage MSIXVC](/fr/build/core-features/common/packaging/overviews/packaging-getting-started-for-PC).

Pour plus de détails, consultez le billet de blog
[Using Visual C++ Runtime in Centennial project](https://blogs.msdn.microsoft.com/vcblog/2016/07/07/using-visual-c-runtime-in-centennial-project/).


## Related topics

- [Guide des BVT de certification pour PC](/fr-CA/publishing/game-publishing/concepts/certification/certification-pc-bvt-guide.md)
- [XR037 Dépendances envers les packages de contenu](/fr-CA/publishing/certification/fma/xr-037.md)
- [XR037 Dépendances vis-à-vis des packages de contenu](/fr/publishing/certification/fma/xr-037.md)
- [XR-037 Dépendances vis-à-vis des packages de contenu](/fr/publishing/certification/xr/xr-037.md)
- [Exigences XBOX pour les jeux XBOX](/fr-CA/publishing/certification/xbox-requirements.md)
