Skip to content

Portando um aplicativo Windows para Arm64: O Caminho Completo

Atualizado em 5 de jun. de 2026

Uma compilação Arm64 nativa é a diferença entre seu aplicativo economizando bateria em velocidade total e rastejando pela emulação Prism. Ela também desbloqueia o que a emulação não pode fazer: drivers de kernel, extensões de shell, integração profunda de hardware. Aqui está o caminho completo de apenas x64 até o envio de Arm64 nativo.

Passo 1: Audite suas dependências primeiro

Este é o passo que faz ou quebra a portabilidade, e vem antes de você tocar em qualquer configuração de compilação. Cada lib estática, pacote NuGet, DLL nativa e plugin que seu aplicativo carrega deve ter uma compilação Arm64 (ou ARM64EC). Percorra toda a árvore de dependências. Uma dependência nativa apenas x64 sem lançamento Arm64 e sem substituto é o sinal de que você precisará de ARM64EC em vez de uma portabilidade pura Arm64. Consulte suas dependências em nosso catálogo para ver quais já são nativas.

Passo 2: Adicione a plataforma de solução ARM64

No Visual Studio (use 2022 17.4+): Gerenciador de Configurações → Plataforma de solução ativa → <Novo...> → selecione ARM64, copie as configurações da sua plataforma x64 existente, mantenha “Criar novas plataformas de projeto” marcado. Seu projeto agora tem um destino Arm64.

Passo 3: Instale as ferramentas de compilação Arm64

Através do Instalador do Visual Studio, adicione as ferramentas de compilação Arm64 (compilador/bibliotecas MSVC Arm64). Você não precisa de um dispositivo Arm para compilar — o Visual Studio compila cruzadamente para Arm64 a partir de uma máquina x64.

Passo 4: Compile nativamente ou cruzadamente

Duas configurações válidas:

  • No dispositivo (nativo): desenvolva em um laptop Snapdragon X — você obtém depuração local e pode executar sua suíte de testes no destino.
  • Compilação cruzada (host x64): mais rápida e barata, mas você não pode executar o resultado localmente — você configurará depuração remota para um dispositivo ou VM Arm.

O padrão de CI pragmático é compilação cruzada em x64 + um trabalho nativo Arm64 para testes; veja o guia de CI/CD.

Passo 5: Quando uma dependência te bloqueia → ARM64EC

Se uma dependência essencial é apenas x64 e não pode ser trocada, você não precisa permanecer totalmente emulado. O ARM64EC permite que código nativo ARM64EC e código x64 emulado compartilhem um processo — recompile seus caminhos críticos nativamente enquanto a dependência x64 teimosa continua rodando. Detalhes completos no aprofundamento ARM64EC.

Passo 6: Verifique e envie

Confirme que a compilação é genuinamente nativa — a coluna Arquitetura do Gerenciador de Tarefas deve exibir ARM64 (veja como verificar). Em seguida, publique: no momento em que sua compilação Arm64 chegar ao winget, Microsoft Store ou GitHub Releases, rastreadores de compatibilidade como o nosso a detectam e alteram sua entrada para nativa. Navegue pelo catálogo de aplicativos nativos e pela tendência de compartilhamento nativo para ver o ecossistema que você está ingressando.

A árvore de decisão

  • Todas as dependências têm compilações Arm64 → Arm64 puro, melhor resultado.
  • Uma ou duas dependências apenas x64, sem substituto → ARM64EC, incremental.
  • Uma dependência de driver de kernel bloqueante → isso é uma portabilidade de driver, um esforço separado.

← Todos os guias