Detalles
- Desarrolla tu aplicación de la forma habitual haciendo referencia a las bibliotecas de exportación del redistribuible requerido.
- En lugar de incluir el redistribuible dependiente con tu aplicación, actualiza tu manifiesto para declarar la dependencia del paquete de plataforma correspondiente.
- Cuando el usuario instala tu aplicación desde Microsoft Store, esta detecta la dependencia y garantiza que el paquete de plataforma esté disponible para la aplicación. Si el paquete de plataforma ya está instalado en el dispositivo del usuario, no es necesaria ninguna acción adicional. De lo contrario, Microsoft Store desencadena la instalación del paquete de plataforma antes de continuar con la instalación de la aplicación que lo usa.
- Una compilación x86 de una aplicación usa una compilación x86 del paquete de plataforma. Una compilación x64 de la aplicación usa una compilación x64 del paquete de plataforma. No necesitas hacer nada para especificar la arquitectura. La plataforma se encarga de eso por ti.
Runtime de DirectX
Este paquete de plataforma proporciona varios componentes opcionales en paralelo (side-by-side) del SDK de DirectX heredado. Si tu aplicación usa las bibliotecas de utilidades de Direct3D en desuso D3DX9, D3DX10 o D3DX11, XAudio 2.7, XInput 1.3 o XACT, este paquete puede usarse para implementar esas DLL en desuso para tu aplicación de escritorio Win32 empaquetada. Consulta esta entrada de blog para obtener más contexto sobre estos componentes.La gran mayoría de los títulos que usan DirectX NO necesitan realmente esta dependencia del paquete de plataforma del “SDK de DirectX heredado”.
- Para XAudio2, la mejor opción es actualizar a XAudio 2.9 usando los encabezados del SDK de Windows 10. En Windows 10, XAudio 2.9, X3DAudio y XAPOFX están integrados en el sistema operativo. Para tus versiones fuera de la Store, puedes usar XAudio2Redist, que ofrece un redistribuible local de aplicación sencillo que admite XAudio2.9 en Windows 7 SP1 o posterior. Esto simplifica la implementación y corrige numerosos errores conocidos del XAudio 2.7 heredado. Consulta Microsoft Docs.
- Para XInput, la mejor opción es usar XInput 1.4 con los encabezados del SDK de Windows 10. En Windows 10, XInput 1.4 está incluido en el sistema operativo. Para tus versiones fuera de la Store, puedes usar XInput 9.1.0, que está incluido en el sistema operativo desde Windows Vista. Consulta esta entrada de blog.
Se desaconseja encarecidamente el uso del XInput 1.3 heredado, ya que tiene problemas de seguridad conocidos. La versión del paquete de plataforma se ha actualizado para mitigar este problema, además de actualizarse a la firma de código SHA-256, pero el paquete DirectX End-User Runtime heredado original no ha cambiado.
-
Para Direct3D 10 (
d3dx10), la mejor opción es actualizar a Direct3D 11. Consulta Microsoft Docs. -
Para Direct3D 11 (
d3dx11), consulta esta entrada de blog para conocer varios reemplazos del D3DX heredado para Direct3D 11.
Para títulos más antiguos, también puedes considerar usar el paquete NuGet Microsoft.DXSDK.D3DX, que proporciona las versiones de junio de 2010 de D3DX9, D3DX10 y D3DX11 con una licencia side-by-side. Estas DLL redistribuibles también tienen firma de código SHA-256.
- Para el compilador de HLSL (
D3DCompiler), puedes usar la versión más reciente del SDK de Windows 10. En Windows 10, está incluido en el sistema operativo. Para tus versiones fuera de la Store, puedes incluirD3DCompiler_47.dllcon tu juego como un simple archivo local de aplicación. Consulta esta entrada de blog.
Ni este paquete de plataforma ni el DirectX End-User Redistributable heredado modifican el runtime de DirectX de ninguna manera.
MicrosoftGame.config:
- Descárgalo desde el sitio de descargas de Microsoft y haz doble clic en los archivos Appx para instalarlos (recomendado). Paquete de plataforma de DirectX x86, paquete de plataforma de DirectX x64
- Escribe el siguiente vínculo desde la aplicación Ejecutar para adquirir una aplicación de ejemplo de DirectX que instala el paquete de dependencia de plataforma de DirectX. (Nota: esto solo funciona en máquinas en el sandbox de desarrollo RETAIL, y solo instalará la variante de plataforma x64 si estás en una máquina con plataforma x64): ms-windows-store://pdp/?productid=9MTF6XHMN17Z
El paquete de plataforma de DirectX no instala estas DLL en la carpeta System32. Están en la ruta de búsqueda de tu aplicación empaquetada en tiempo de ejecución. Si usas vinculación explícita, no uses las marcas de
LoadLibraryEx LOAD_LIBRARY_SEARCH_SYSTEM32 o LOAD_LIBRARY_SEARCH_APPLICATION_DIR para cargar estas bibliotecas heredadas de DirectX.La versión 9.29.1974.0 de este paquete de plataforma incluye DLL de carga con firma de código SHA-256, así como una corrección de seguridad para XInput 1.3.
Runtime de C++ de Visual Studio
En el caso específico del runtime de C/C++, la forma redistribuible tradicional y la forma de paquete de plataforma no siempre son idénticas. Las aplicaciones tradicionales fuera de Microsoft Store siempre han usado la forma redistribuible tradicional.
Los instaladores mencionados anteriormente colocan los paquetes de plataforma necesarios en la siguiente carpeta de Extension SDKs:
%PROGRAMFILES(X86)%\Microsoft SDKs\Windows Kits\10\ExtensionSDKs
Asegúrate de instalar de forma independiente (sideload) la versión que corresponda a la arquitectura de tu aplicación: x86 o x64.
Para probar tu paquete y sus dependencias de plataforma localmente, identifica la versión de Visual Studio con la que se compiló tu aplicación, instala de forma independiente los paquetes de plataforma APPX correspondientes y, a continuación, registra tu aplicación.
Consulta Microsoft Docs para obtener más información.
Visual Studio 2012
A continuación se muestra un ejemplo de entrada de manifiesto para el paquete de plataforma VCLibs v11 de Visual Studio 2012.-
x86:
- Localiza el paquete de plataforma: 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
-
Haz doble clic en él para instalarlo o ejecuta el siguiente comando de Windows PowerShell:
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:
- Localiza el paquete de plataforma: 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
-
Haz doble clic en él para instalarlo o ejecuta el siguiente comando de Windows PowerShell:
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
A continuación se muestra un ejemplo de entrada de manifiesto para el paquete de plataforma VCLibs v12 de Visual Studio 2012.-
x86:
- Localiza el paquete de plataforma: 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
-
Haz doble clic en él para instalarlo o ejecuta el siguiente comando de Windows PowerShell:
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:
- Localiza el paquete de plataforma: 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
-
Haz doble clic en él para instalarlo o ejecuta el siguiente comando de Windows PowerShell:
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
A continuación se muestra un ejemplo de entrada de manifiesto para el paquete de plataforma VCLibs v14 de Visual Studio 2015 o posterior.-
x86:
- Localiza el paquete de plataforma: 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
-
Haz doble clic en él para instalarlo o ejecuta el siguiente comando de Windows PowerShell:
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:
- Localiza el paquete de plataforma: 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
-
Haz doble clic en él para instalarlo o ejecuta el siguiente comando de Windows PowerShell:
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"
Pruebas locales
Después de incluir las referencias en el manifiesto adecuado e instalar de forma independiente el paquete de plataforma APPX, instala la versión de compilación con archivos sueltos de tu aplicación usando el siguiente comando:WdApp.exe register loose_build_path
Esto garantiza que tu aplicación esté instalada y haga referencia a la plataforma correcta. Ahora ejecuta tu aplicación desde su icono en el menú Inicio y, a continuación, realiza los pasos de prueba y validación necesarios para tu aplicación.
Cuando hayas completado las pruebas en la configuración de instalación independiente, crea un paquete MSIXVC siguiendo las instrucciones del tema Introducción al empaquetado de títulos para PC mediante las herramientas de empaquetado MSIXVC.
Para obtener más detalles, consulta la entrada de blog
Using Visual C++ Runtime in Centennial project.