> ## 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.

# Dependencias de paquetes de plataforma (framework)

> Dependencias de paquetes de plataforma (framework)

Si tu aplicación depende de algún software redistribuible que esté disponible en Microsoft Store como paquete de plataforma (framework), en lugar de instalar el redistribuible en cadena, puedes declarar una dependencia del paquete de plataforma. Sin embargo, no uses esta opción si Microsoft Store no tiene disponible un paquete de plataforma para tu redistribuible dependiente. En su lugar, considera acciones de instalación personalizadas.

## 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](https://aka.ms/dxsetup) para obtener más contexto sobre estos componentes.

<Note>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".</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
```

Como alternativa, puedes actualizar tu aplicación para quitar las dependencias del [SDK de DirectX heredado](https://learn.microsoft.com/windows/win32/directx-sdk--august-2009-).

* 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](https://aka.ms/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](https://learn.microsoft.com/windows/win32/xaudio2/xaudio2-versions).

* 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](https://aka.ms/Mu9kn7).

> 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](https://learn.microsoft.com/windows/win32/direct3d11/d3d11-programming-guide-migrating).

* Para **Direct3D 11** (`d3dx11`), consulta [esta entrada de blog](https://aka.ms/Kfsdiu) 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](https://www.nuget.org/packages/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 incluir `D3DCompiler_47.dll` con tu juego como un simple archivo local de aplicación. Consulta [esta entrada de blog](https://aka.ms/Tuoxjd).

<Note>Ni este paquete de plataforma ni el DirectX End-User Redistributable heredado modifican el runtime de DirectX de ninguna manera.</Note>

Fragmento de ejemplo de `MicrosoftGame.config`:

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

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

</Game>
```

Hay dos maneras de obtener el paquete de plataforma de DirectX en una máquina de desarrollo o de prueba.

1. 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](https://aka.ms/directx_x86_appx), [paquete de plataforma de DirectX x64](https://aka.ms/directx_x64_appx)
2. 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

<Note>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.</Note>

> 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.

| **Versión de Visual C/C++** | **Recomendación**                                                                                                                                                                                                                                                                  |
| --------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| 2015, 2017, 2019, 2022      | Las formas redistribuible tradicional y de paquete de plataforma son idénticas, y puedes elegir cualquiera de las dos. Sin embargo, recomendamos usar paquetes de plataforma como práctica recomendada.                                                                            |
| 2013                        | Las aplicaciones empaquetadas con MSIXVC deben usar la versión de plataforma. Si no lo hacen, algunas API podrían comportarse de forma inesperada.                                                                                                                                 |
| 2012                        | Las aplicaciones empaquetadas con MSIXVC deben usar la versión de plataforma. Si no lo hacen, algunas API podrían comportarse de forma inesperada.                                                                                                                                 |
| 2010 y anteriores           | Las aplicaciones empaquetadas con MSIXVC deben incorporar los archivos sueltos del redistribuible tradicional en la subcarpeta adecuada dentro de la carpeta de la aplicación. Para estas versiones, no deben usarse ni el redistribuible tradicional ni el paquete de plataforma. |

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](https://learn.microsoft.com/troubleshoot/cpp/c-runtime-packages-desktop-bridge) 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.

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

Para instalar de forma independiente este paquete de plataforma

* **x86:**

  1. 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

  2. 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:**

  1. 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

  2. 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.

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

Para instalar de forma independiente este paquete de plataforma

* **x86:**

  1. 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

  2. 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:**

  1. 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

  2. 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.

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

Para instalar de forma independiente este paquete de plataforma

* **x86:**

  1. 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

  2. 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:**

  1. 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

  2. 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"`

Recuerda que VS 2015 Update 3, VS 2017, VS 2019 y VS 2022 usan todos el mismo REDIST, siendo el de VS 2022 el más reciente. Consulta [Microsoft Docs](https://learn.microsoft.com/cpp/porting/binary-compat-2015-2017) para obtener más información.

## 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](/build/core-features/common/packaging/overviews/packaging-getting-started-for-PC).

Para obtener más detalles, consulta la entrada 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

- [FMA: XR-037 Dependencias de paquetes de contenido](/es/publishing/certification/fma/xr-037.md)
- [XR-037 Dependencias de paquetes de contenido](/es/publishing/certification/xr/xr-037.md)
- [Introducción a Linux](/es/services/playfab/multiplayer/networking/linux-specific-requirements.md)
- [Información general de la certificación de XBOX](/es/publishing/certification/overview.md)
- [Introducción al empaquetado de títulos para PC con las herramientas MSIXVC](/es/build/core-features/common/packaging/overviews/packaging-getting-started-for-PC.md)
