Détails
- Développez votre application de la façon 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 envers le paquet d’infrastructure pertinent.
- Lorsque l’utilisateur installe votre application à partir du Microsoft Store, celui-ci détecte la dépendance et s’assure que le paquet d’infrastructure est mis à la disposition de l’application. Si le paquet 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 paquet d’infrastructure avant de poursuivre l’installation de l’application qui l’utilise.
- Une build x86 d’une application utilise une build x86 du paquet d’infrastructure. Une build x64 de l’application utilise une build x64 du paquet d’infrastructure. Vous n’avez rien à faire pour spécifier l’architecture. La plateforme s’en occupe pour vous.
Runtime DirectX
Ce paquet d’infrastructure fournit divers composants facultatifs côte à côte provenant de l’ancien SDK DirectX. Si votre application utilise les bibliothèques d’utilitaires Direct3D dépréciées D3DX9, D3DX10 ou D3DX11, XAudio 2.7, XInput 1.3 ou XACT, ce paquet peut être utilisé pour déployer ces DLL dépréciées pour votre application de bureau Win32 empaquetée. Consultez ce billet de blogue pour plus de contexte sur ces composants.La grande majorité des titres qui utilisent DirectX n’ont PAS réellement besoin de cette dépendance au paquet d’infrastructure de l’« ancien SDK DirectX ».
- Pour XAudio2, la meilleure option est de passer à XAudio 2.9 en utilisant les en-têtes du SDK Windows 10. Pour 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, qui offre un redistribuable simple local à l’application prenant en charge XAudio2.9 sur 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.
- Pour XInput, la meilleure option est d’utiliser XInput 1.4 avec les en-têtes du SDK Windows 10. Pour 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 blogue.
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 paquet d’infrastructure a été mise à jour pour atténuer ce problème et pour passer à la signature de code SHA-256, mais le paquet d’origine de l’ancien DirectX End-User Runtime n’a pas été modifié.
-
Pour Direct3D 10 (
d3dx10), la meilleure option est de passer à Direct3D 11. Consultez Microsoft Docs. -
Pour Direct3D 11 (
d3dx11), consultez ce billet de blogue pour connaître divers remplacements de l’ancienne bibliothèque D3DX pour Direct3D 11.
Pour les titres plus anciens, vous pouvez également envisager d’utiliser le paquet NuGet 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 plus récente version incluse dans le SDK Windows 10. Pour Windows 10, il est inclus dans le système d’exploitation. Pour vos versions hors Store, vous pouvez inclure le fichierD3DCompiler_47.dllavec votre jeu en tant que simple fichier local à l’application. Consultez ce billet de blogue.
Ni ce paquet d’infrastructure ni l’ancien DirectX End-User Redistributable ne modifient le runtime DirectX de quelque façon que ce soit.
MicrosoftGame.config :
- Téléchargez-le à partir du site Microsoft Downloads et double-cliquez sur les fichiers Appx pour les installer (recommandé). Paquet d’infrastructure DirectX x86, Paquet d’infrastructure DirectX x64
- Entrez le lien suivant dans l’application Exécuter pour obtenir un exemple d’application DirectX qui installe le paquet de dépendance d’infrastructure DirectX. (Remarque : cela fonctionne uniquement pour les ordinateurs dans le sandbox de développement RETAIL, et seule la version de plateforme x64 sera installée si vous utilisez un ordinateur de plateforme x64) : ms-windows-store://pdp/?productid=9MTF6XHMN17Z
Le paquet 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 à l’exécution. Si vous utilisez la 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.La version 9.29.1974.0 de ce paquet d’infrastructure comprend 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 précis du runtime C/C++, la forme redistribuable traditionnelle et la forme de paquet d’infrastructure ne sont pas toujours identiques. Les applications traditionnelles hors Microsoft Store ont toujours utilisé la forme redistribuable traditionnelle.
Les programmes d’installation mentionnés précédemment placent les paquets d’infrastructure nécessaires dans le dossier Extension SDKs suivant :
%PROGRAMFILES(X86)%\Microsoft SDKs\Windows Kits\10\ExtensionSDKs
Assurez-vous de charger de façon indépendante (sideload) la version qui correspond à l’architecture de votre application : x86 ou x64.
Pour tester localement votre paquet et ses dépendances d’infrastructure, déterminez la version de Visual Studio avec laquelle votre application a été générée, chargez de façon indépendante les paquets d’infrastructure APPX correspondants, puis inscrivez votre application.
Consultez Microsoft Docs pour plus d’information.
Visual Studio 2012
Voici un exemple d’entrée de manifeste pour le paquet d’infrastructure VCLibs v11 de Visual Studio 2012.-
x86 :
- Repérez le paquet 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
-
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 :
- Repérez le paquet 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
-
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 paquet d’infrastructure VCLibs v12 de Visual Studio 2012.-
x86 :
- Repérez le paquet 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
-
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 :
- Repérez le paquet 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
-
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 paquet d’infrastructure VCLibs v14 de Visual Studio 2015 ou version ultérieure.-
x86 :
- Repérez le paquet 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
-
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 :
- Repérez le paquet 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
-
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"
Tests locaux
Après avoir inclus les références au manifeste approprié et chargé de façon indépendante le paquet 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 maintenant 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 paquet 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.
Pour plus de détails, consultez le billet de blogue
Using Visual C++ Runtime in Centennial project.