visão geral da implantação do SDK do Aplicativo Windows

Há duas maneiras de implantar o SDK do Aplicativo Windows:

  • dependentes do Framework. Seu aplicativo depende do SDK do Aplicativo Windows runtime e/ou pacote framework que está presente no computador de destino. A implantação dependente da estrutura é o modo de implantação padrão do SDK do Aplicativo Windows para seu uso eficiente de recursos de máquina e capacidade de serviço.
  • independente. Seu aplicativo inclui as dependências do SDK do Aplicativo Windows, eliminando a necessidade de uma instalação separada do runtime no computador de destino.

Este tópico também utiliza os termos aplicativo empacotado, aplicativo empacotado com localização externa e aplicativo não empacotado. Para obter explicações sobre esses termos, consulte a visão geral da implantação.

Implantar dependente de estrutura Implantar autossuficiente
Vantagens Implementação pequena. Somente seu aplicativo e suas outras dependências são distribuídos. O SDK do Aplicativo Windows runtime e o pacote framework são instalados automaticamente por aplicativos dependentes da estrutura que são empacotados ou como parte do instalador de runtime SDK do Aplicativo Windows por aplicativos dependentes da estrutura que são empacotados com local externo ou desempacotados.

Serviceable. As atualizações de manutenção no SDK do Aplicativo Windows são instaladas automaticamente por meio do pacote SDK do Aplicativo Windows Framework sem nenhuma ação necessária do aplicativo.
Controle da versão do SDK do Aplicativo Windows. Você controla qual versão do SDK do Aplicativo Windows é implantada com seu aplicativo. As atualizações de manutenção do SDK do Aplicativo Windows não afetarão seu aplicativo, a menos que você recompile e redistribua-o.

Isolado de outros aplicativos. Aplicativos e usuários não podem desinstalar sua dependência de SDK do Aplicativo Windows sem desinstalar todo o aplicativo.

Implantação do Xcopy. Como as dependências do SDK do Aplicativo Windows estão incluídas no seu aplicativo, você pode implantar seu aplicativo simplesmente copiando o resultado da compilação usando xcopy, sem nenhum requisito de instalação adicional.
Desvantagens Dependências de instalação adicionais. Requer a instalação do SDK do Aplicativo Windows runtime e/ou pacote framework, que pode adicionar complexidade à instalação do aplicativo.

Dependências compartilhadas. Risco de que as dependências compartilhadas sejam desinstaladas. Aplicativos ou usuários que desinstalam os componentes compartilhados podem afetar a experiência do usuário de outros aplicativos que compartilham a dependência.

Risco de compatibilidade. O risco de que as atualizações de manutenção no SDK do Aplicativo Windows introduzam alterações de ruptura. Embora as atualizações de manutenção forneçam compatibilidade com versões anteriores, é possível que as regressões sejam introduzidas.
Implantações maiores (somente aplicativos não empacotados). Como seu aplicativo inclui o SDK do Aplicativo Windows, o tamanho do download e o espaço de disco rígido necessários são maiores do que seria o caso de uma versão dependente da estrutura.

Desempenho (somente aplicativos não empacotados). Mais lento para carregar e usa mais memória, pois as páginas de código não são compartilhadas com outros aplicativos.

Não pode ser atendido. A versão SDK do Aplicativo Windows distribuída com seu aplicativo só pode ser atualizada liberando uma nova versão do seu aplicativo. Você é responsável por integrar as atualizações de manutenção do SDK do Aplicativo Windows em seu aplicativo.

Consulte também Criar seu primeiro projeto WinUI 3 e Utilize o SDK do Aplicativo Windows em um projeto existente.

Note

PublishSingleFile (EXE de arquivo único) tem suporte em aplicativos WinUI 3 não empacotados e autocontidos (SDK do Aplicativo Windows 1.5 e posterior). Aplicativos empacotados e aplicativos dependentes de framework não dão suporte a PublishSingleFile. Consulte EXE de arquivo único para obter as propriedades necessárias do MSBuild.

Mais informações sobre a implantação dependente da estrutura

Antes de configurar seu aplicativo dependente de estrutura para implantação, examine as dependências que seu aplicativo utiliza ao recorrer ao SDK do Aplicativo Windows na Arquitetura de implantação para o SDK do Aplicativo Windows.

Aplicativos empacotados

Se você optou por usar um aplicativo empacotado dependente de estrutura (consulte Deployment overview), aqui estão as instruções sobre como implantar o runtime SDK do Aplicativo Windows com o aplicativo:

Empacotado com localização externa ou aplicativos não empacotados

Se você optou por usar um aplicativo empacotado dependente de estrutura com localização externa ou um aplicativo não empacotado dependente de estrutura (consulte Deployment overview), aqui estão as instruções sobre como implantar o runtime SDK do Aplicativo Windows com o aplicativo:

Mais informações sobre implantação autocontida

Consulte guia de implantação do SDK do Aplicativo Windows para aplicativos autossuficientes.

Note

PublishSingleFile (EXE de arquivo único) exige que o aplicativo seja não empacotado e independente. Consulte o EXE de arquivo único para obter a lista completa das propriedades necessárias do MSBuild.

Inicializar o SDK do Aplicativo Windows

A maneira como você deve inicializar o SDK do Aplicativo Windows depende de se e como empacotar seu aplicativo e da maneira como você implanta em relação ao runtime do SDK do Aplicativo Windows. Use a seção abaixo que se aplica ao seu aplicativo.

Aplicativos empacotados

Como seu aplicativo é implantado Como inicializar
Dependente de estrutura Consulte Chame a API de Implantação.
Autossuficiente Nenhuma inicialização necessária.

Aplicativos não empacotados e aplicativos empacotados com localização externa

Como seu aplicativo é implantado Como inicializar
Dependente de estrutura Veja para usar a API bootstrapper em um aplicativo empacotado com localização externa ou não empacotado.
Autossuficiente Consulte Optar por não participar (ou participar de) suporte automático do UndockedRegFreeWinRT.

Considerações sobre arquitetura (x64, ARM64)

Ao implantar seu aplicativo, você deve incluir binários para cada arquitetura de processador de que os usuários precisam. Isso se aplica aos modos de implantação independentes e dependentes da estrutura.

Suporte a ARM64

Windows em dispositivos ARM (incluindo Surface Pro X, Surface Pro 11 e Copilot+ PCs) executam ARM64 nativamente. Embora a emulação x64 esteja disponível em dispositivos ARM64 com Windows 11, os binários ARM64 nativos oferecem melhor desempenho e maior autonomia de bateria — e são recomendados quando você deseja a melhor experiência para cargas de trabalho de IA executadas no dispositivo em PCs Copilot+.

Implantação nativa do ARM64

  • Pacotes MSIX — Crie um .msixbundle que inclua as arquiteturas x64 e ARM64. Visual Studio os gera automaticamente quando você cria para várias plataformas. A Loja e o Instalador de Aplicativos selecionam a arquitetura correta no momento da instalação.

  • Publicação independente — Especifique o RID (identificador de runtime) para cada arquitetura:

    dotnet publish -c Release -r win-x64 --self-contained true
    dotnet publish -c Release -r win-arm64 --self-contained true
    
  • C++/WinRT — Crie configurações separadas para x64 e ARM64 em sua solução de Visual Studio.

  • Aplicativos dependentes da estrutura – ao usar o instalador do SDK do Aplicativo Windows runtime, verifique se você fornece o instalador específico da arquitetura correta. O SDK do Aplicativo Windows fornece instaladores separados para x64 e ARM64.

Arm64EC — migração gradual para grandes bases de código do C/C++

Se seu aplicativo tiver uma base de código nativa grande (C/C++), um recompilar completo para ARM64 pode não ser prático em uma única etapa. Arm64EC (Compatível com Emulação) permite misturar código x64 e ARM64 no mesmo processo. Você recompila módulos críticos para o desempenho para ARM64 nativo, enquanto os demais módulos x64 são executados sob emulação — tudo em um único binário.

Approach Melhor para Compromisso
Recompilação completa do ARM64 Aplicativos .NET puros, pequenos projetos do C++ Melhor desempenho; requer que todas as dependências sejam compatíveis com ARM64
Arm64EC Aplicativos C/C++ grandes, aplicativos com plug-ins exclusivos para x64 ou DLLs de terceiros Migração incremental; partes emuladas são executadas mais lentamente do que nativas
somente x64 (emulado) Aplicativos que não podem ser recompilados e não precisam de desempenho de pico Simples; redução da duração da bateria e maior latência em dispositivos ARM64

Para obter mais informações, consulte Arm64EC — Criar e portar aplicativos para desempenho nativo no Arm.

Emulação (Prism)

Windows 11 no ARM usa uma camada de emulação chamada Prism para executar aplicativos x64 e x86 no hardware ARM64. O Prism converte instruções x86/x64 para ARM64 em runtime, fornecendo ampla compatibilidade com o aplicativo sem a necessidade de um recompilamento.

  • Emulação x64 — Disponível apenas em dispositivos ARM64 Windows 11 (não Windows 10 no ARM).
  • Emulação x86 – Disponível em dispositivos Windows 10 e Windows 11 ARM64.
  • Desempenho — Aplicativos emulados normalmente são executados com desempenho aceitável para cargas de trabalho de produtividade, mas aplicativos com uso intensivo de gráficos ou computação pesada se beneficiam significativamente de um build ARM64 ou Arm64EC nativo.

Dica

Se você direcionar apenas x64, seu aplicativo ainda será executado em dispositivos ARM64 por meio da emulação do Prism (somente Windows 11). No entanto, compilações nativas para ARM64 são altamente recomendadas para aplicativos em produção — aplicativos emulados consomem mais bateria e têm maior latência. Em Copilot+ PCs, o ARM64 nativo pode fornecer o melhor desempenho para cargas de trabalho de IA no dispositivo.

Para envios para a Loja, carregue pacotes específicos para cada arquitetura ou um pacote combinado contendo ambos. A Loja fornece apenas a arquitetura correspondente para cada dispositivo.