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 para obter mais informações sobre esses componentes.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’.
- 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, 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.
- 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.
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. -
Para o Direct3D 11 (
d3dx11), confira esta postagem de blog 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, 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 oD3DCompiler_47.dllno seu jogo como um arquivo simples local para o aplicativo. Confira esta postagem de blog.
Nem este pacote de estrutura nem o DirectX End-User Redistributable legado modificam o DirectX Runtime de forma alguma.
MicrosoftGame.config:
- Baixe-o do site Microsoft Downloads e clique duas vezes nos arquivos Appx para instalar (recomendado). Pacote de estrutura do DirectX x86, Pacote de estrutura do DirectX x64
- 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
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.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.
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 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.-
x86:
- 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
-
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:
- 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
-
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.-
x86:
- 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
-
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:
- 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
-
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.-
x86:
- 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
-
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:
- 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
-
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"
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.
Para obter mais detalhes, confira a postagem de blog
Using Visual C++ Runtime in Centennial project.