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

# Dependências de pacotes de estrutura

> Dependências de pacotes de estrutura

Se o seu aplicativo depende de algum software redistribuível que está disponível na Microsoft Store como um pacote de estrutura, em vez de fazer a instalação encadeada do redistribuível, você pode declarar uma dependência do pacote de estrutura. No entanto, não use essa abordagem se a Microsoft Store não tiver nenhum pacote de estrutura disponível para o redistribuível do qual você depende. Em vez disso, considere ações de instalação personalizadas.

## Detalhes

* Desenvolva seu aplicativo da maneira normal, referenciando as bibliotecas de exportação do redistribuível necessário.

* Em vez de incluir o redistribuível dependente com seu aplicativo, atualize seu manifesto para declarar a dependência do pacote de estrutura relevante.

* Quando o usuário instala seu aplicativo pela Microsoft Store, ela detecta a dependência e garante que o pacote de estrutura seja disponibilizado para o aplicativo.

  Se o pacote de estrutura já estiver instalado no dispositivo do usuário, nenhuma outra ação será necessária. Caso contrário, a Microsoft Store dispara a instalação do pacote de estrutura antes de prosseguir com a instalação do aplicativo que o utiliza.

* Um build x86 de um aplicativo usa um build x86 do pacote de estrutura. Um build x64 do aplicativo usa um build x64 do pacote de estrutura. Você não precisa fazer nada para especificar a arquitetura. A plataforma cuida disso para você.

## Runtime do DirectX

Esse pacote de estrutura fornece vários componentes opcionais lado a lado do SDK do DirectX legado. Se o seu aplicativo usa as bibliotecas de utilitários preteridas do Direct3D D3DX9, D3DX10 ou D3DX11, XAudio 2.7, XInput 1.3 ou XACT, esse pacote pode ser usado para implantar essas DLLs preteridas no seu aplicativo da área de trabalho Win32 empacotado.  Confira [esta postagem de blog](https://aka.ms/dxsetup) para obter mais informações sobre esses componentes.

<Note>A grande maioria dos títulos que usam DirectX NÃO precisa realmente dessa dependência do pacote de estrutura do 'SDK do DirectX legado'.</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, você pode atualizar seu aplicativo para remover as dependências do [SDK do DirectX legado](https://learn.microsoft.com/windows/win32/directx-sdk--august-2009-).

* Para o **XAudio2**, a melhor opção é atualizar para o XAudio 2.9 usando os cabeçalhos do SDK do Windows 10. No Windows 10, o XAudio 2.9, o X3DAudio e o XAPOFX são todos integrados ao sistema operacional. Para suas versões fora da Store, você pode usar o [XAudio2Redist](https://aka.ms/XAudio2Redist), que tem um redistribuível simples local para o aplicativo que dá suporte ao XAudio2.9 no Windows 7 SP1 ou posterior. Isso simplifica a implantação e corrige vários bugs conhecidos do XAudio 2.7 legado. Confira [Microsoft Docs](https://learn.microsoft.com/windows/win32/xaudio2/xaudio2-versions).

* Para o **XInput**, a melhor opção é usar o XInput 1.4 com os cabeçalhos do SDK do Windows 10. No Windows 10, o XInput 1.4 está incluído no sistema operacional. Para suas versões fora da Store, você pode usar o XInput 9.1.0, que está incluído no sistema operacional desde o Windows Vista. Confira [esta postagem de blog](https://aka.ms/Mu9kn7).

> O uso do XInput 1.3 legado é altamente desaconselhado, pois ele tem problemas de segurança conhecidos. A versão no pacote de estrutura foi atualizada para atenuar esse problema, além de ter sido atualizada para assinatura de código SHA-256, mas o pacote original do DirectX End-User Runtime legado não foi alterado.

* Para o **Direct3D 10** (`d3dx10`), a melhor opção é atualizar para o Direct3D 11. Confira [Microsoft Docs](https://learn.microsoft.com/windows/win32/direct3d11/d3d11-programming-guide-migrating).

* Para o **Direct3D 11** (`d3dx11`), confira [esta postagem de blog](https://aka.ms/Kfsdiu) para conhecer várias substituições do D3DX legado para Direct3D 11.

> Para títulos mais antigos, você também pode considerar o uso do pacote NuGet [Microsoft.DXSDK.D3DX](https://www.nuget.org/packages/Microsoft.DXSDK.D3DX), que fornece as versões de junho de 2010 do D3DX9, D3DX10 e D3DX11 com uma licença lado a lado. Essas DLLs redistribuíveis também têm assinatura de código SHA-256.

* Para o **compilador HLSL** (`D3DCompiler`), você pode usar a versão mais recente do SDK do Windows 10. No Windows 10, ele está incluído no sistema operacional. Para suas versões fora da Store, você pode incluir o `D3DCompiler_47.dll` no seu jogo como um arquivo simples local para o aplicativo. Confira [esta postagem de blog](https://aka.ms/Tuoxjd).

<Note>Nem este pacote de estrutura nem o DirectX End-User Redistributable legado modificam o DirectX Runtime de forma alguma.</Note>

Exemplo de trecho do `MicrosoftGame.config`:

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

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

</Game>
```

Há duas maneiras de colocar o pacote de estrutura do DirectX em um computador de desenvolvimento ou de teste.

1. Baixe-o do site Microsoft Downloads e clique duas vezes nos arquivos Appx para instalar (recomendado). [Pacote de estrutura do DirectX x86](https://aka.ms/directx_x86_appx), [Pacote de estrutura do DirectX x64](https://aka.ms/directx_x64_appx)
2. Insira o link a seguir no aplicativo Executar para adquirir um aplicativo de exemplo do DirectX que instala o pacote de dependência da estrutura do DirectX.  (Observação: isso só funciona para computadores na área restrita de desenvolvimento RETAIL, e só instalará a variante da plataforma x64 se você estiver em um computador com plataforma x64): ms-windows-store://pdp/?productid=9MTF6XHMN17Z

<Note>O pacote de estrutura do DirectX não instala essas DLLs na pasta System32. Elas ficam no caminho de pesquisa do seu aplicativo empacotado em runtime. Se você estiver usando vinculação explícita, não use os sinalizadores de `LoadLibraryEx` `LOAD_LIBRARY_SEARCH_SYSTEM32` ou `LOAD_LIBRARY_SEARCH_APPLICATION_DIR` para carregar essas bibliotecas do DirectX legado.</Note>

> A versão 9.29.1974.0 desse pacote de estrutura inclui DLLs de conteúdo com assinatura de código SHA-256, além de uma correção de segurança para o XInput 1.3.

## Runtime do C++ do Visual Studio

No caso específico do runtime do C/C++, a forma tradicional de redistribuível e a forma de pacote de estrutura nem sempre são idênticas. Os aplicativos tradicionais fora da Microsoft Store sempre usaram a forma tradicional de redistribuível.

| **Versão do Visual C/C++** | **Recomendação** |
| - | - |
| 2015, 2017, 2019, 2022 | As formas tradicional de redistribuível e de pacote de estrutura são idênticas, e você pode escolher qualquer uma delas. No entanto, recomendamos usar pacotes de estrutura como prática recomendada. |
| 2013 | Os aplicativos empacotados com MSIXVC devem usar a versão de estrutura. Caso contrário, algumas APIs podem se comportar de forma inesperada. |
| 2012 | Os aplicativos empacotados com MSIXVC devem usar a versão de estrutura. Caso contrário, algumas APIs podem se comportar de forma inesperada. |
| 2010 e anteriores | Os aplicativos empacotados com MSIXVC devem incorporar os arquivos soltos do redistribuível tradicional na subpasta apropriada dentro da pasta do aplicativo. Para essas versões, nem o redistribuível tradicional nem o pacote de estrutura devem ser usados. |

Os instaladores mencionados anteriormente colocam os pacotes de estrutura necessários na seguinte pasta de *SDKs de extensão*:

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

Certifique-se de fazer o sideload da versão que corresponde à arquitetura do seu aplicativo: x86 ou x64.

Para testar seu pacote e as dependências de estrutura localmente, identifique a versão do Visual Studio com a qual seu aplicativo foi compilado, faça o sideload dos pacotes de estrutura APPX correspondentes e, em seguida, registre seu aplicativo.

Confira [Microsoft Docs](https://learn.microsoft.com/troubleshoot/cpp/c-runtime-packages-desktop-bridge) para obter mais informações.

### Visual Studio 2012

Veja a seguir um exemplo de entrada de manifesto para o pacote de estrutura VCLibs v11 do Visual Studio 2012.

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

Para fazer o sideload desse pacote de estrutura

* **x86:**

  1. Localize o pacote de estrutura:

     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. Clique duas vezes nele para instalar ou execute o seguinte comando do 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. Localize o pacote de estrutura:

     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. Clique duas vezes nele para instalar ou execute o seguinte comando do 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

Veja a seguir um exemplo de entrada de manifesto para o pacote de estrutura VCLibs v12 do Visual Studio 2012.

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

Para fazer o sideload desse pacote de estrutura

* **x86:**

  1. Localize o pacote de estrutura:

     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. Clique duas vezes nele para instalar ou execute o seguinte comando do 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. Localize o pacote de estrutura:

     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. Clique duas vezes nele para instalar ou execute o seguinte comando do 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

Veja a seguir um exemplo de entrada de manifesto para o pacote de estrutura VCLibs v14 do Visual Studio 2015 ou posterior.

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

Para fazer o sideload desse pacote de estrutura

* **x86:**

  1. Localize o pacote de estrutura:

     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. Clique duas vezes nele para instalar ou execute o seguinte comando do 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. Localize o pacote de estrutura:

     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. Clique duas vezes nele para instalar ou execute o seguinte comando do 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"`

Lembre-se de que o VS 2015 Update 3, o VS 2017, o VS 2019 e o VS 2022 usam o mesmo REDIST, sendo o do VS 2022 o mais recente. Confira [Microsoft Docs](https://learn.microsoft.com/cpp/porting/binary-compat-2015-2017) para obter mais informações.

## Teste local

Depois de incluir as referências no manifesto apropriado e fazer o sideload do pacote de estrutura APPX, instale a versão de build solto do seu aplicativo usando o seguinte comando:

`WdApp.exe register loose_build_path`

Isso garante que seu aplicativo seja instalado e faça referência à estrutura correta. Agora, execute seu aplicativo a partir do bloco dele no menu Iniciar e, em seguida, execute as etapas de teste e validação necessárias para o seu aplicativo.

Depois de concluir os testes na configuração de sideload, crie um pacote MSIXVC usando as instruções do tópico [Introdução ao empacotamento de títulos para PC usando as ferramentas de empacotamento MSIXVC](/pt-BR/build/core-features/common/packaging/overviews/packaging-getting-started-for-PC).

Para obter mais detalhes, confira a postagem 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

- [Guia de BVT de PC da certificação](/pt-BR/publishing/game-publishing/concepts/certification/certification-pc-bvt-guide.md)
- [XR037 Dependências de pacotes de conteúdo](/pt-BR/publishing/certification/fma/xr-037.md)
- [XR-037 Dependências de pacotes de conteúdo](/pt-BR/publishing/certification/xr/xr-037.md)
- [Requisitos XBOX testados na certificação para jogos de console XBOX](/pt-BR/publishing/certification/console-cert-tested-requirements.md)
- [Requisitos do XBOX para jogos do XBOX](/pt-BR/publishing/certification/xbox-requirements.md)
