Guia de testes MSIX antes do envio à Store: não deixe problemas de empacotamento serem descobertos só na certificação
2026-06-01
Tags: Windows · Microsoft Store · MSIX · Armadilhas da Store
Em Armadilhas da Store #4, encontramos um problema onde o .NET Trimming desabilitou silenciosamente funcionalidades do WinUI 3 — localmente no Debug tudo funcionava, mas o pacote Release foi rejeitado após o envio. O ponto em comum desses problemas é: se você validar o pacote localmente antes de enviar, muitas armadilhas podem ser detectadas antecipadamente. Claro, nem todos os problemas podem ser descobertos antes (por exemplo, a entrada fantasma no Menu Iniciar causada por uma dependência é difícil de reproduzir localmente), mas pelo menos a maior parte pode ser interceptada.
Este artigo reúne um fluxo de verificação local antes do envio do MSIX, cobrindo certificação WACK, instalação de certificado autoassinado, instalação de dependências e testes em máquina virtual limpa.
Passo 1: Executar o WACK (Windows App Certification Kit)
O WACK é uma ferramenta de pré-certificação local fornecida pela Microsoft. Ele executa uma série de verificações no seu pacote, simulando parte dos testes de certificação da Store.
Alguns pontos importantes:
- Só funciona com pacotes Release, pacotes Debug não são aceitos — isso também te obriga a testar a compilação Release
- O WACK foi marcado como descontinuado pela Microsoft (sem mais atualizações), mas ainda pode ser usado para verificações locais opcionais antes do envio; a certificação oficial é executada automaticamente após o envio à Store
- A aprovação no WACK não garante aprovação na Store, mas ajuda a interceptar uma grande quantidade de problemas básicos (conformidade de API, desempenho, segurança, etc.)
Como usar: no assistente «Empacotar e Publicar» do Visual Studio, na etapa «Selecionar e Configurar Pacote», marque a opção «Compilar projeto para validar o aplicativo com o Kit de Certificação de Aplicativos Windows» na parte inferior. Após a conclusão do empacotamento, aparecerá um botão «Iniciar o Kit de Certificação de Aplicativos Windows». Ou pesquise Windows App Certification Kit no Menu Iniciar para iniciá-lo manualmente.
Passo 2: Gerar um pacote Test com certificado autoassinado
Esta etapa é um pouco trabalhosa.
Os pacotes MSIX devem ser assinados para poderem ser instalados. Durante o desenvolvimento, o Visual Studio usa um certificado temporário, mas o pacote MSIX gerado não necessariamente inclui um certificado utilizável. O fluxo real é o seguinte:
Primeiro, empacotar uma vez no modo Sideload
- Clique com o botão direito no projeto → Empacotar e Publicar
- Selecione Sideload (não selecione Microsoft Store)
- Selecione o certificado de assinatura e conclua o empacotamento
Depois, gerar o pacote Test no modo Store
- Novamente Empacotar e Publicar, desta vez selecione Microsoft Store (AppName por PublisherName)
- O pacote Test gerado (na pasta
_Testdentro do diretórioAppPackages) incluirá o certificado autoassinado
Se você pular as etapas 1-3 e for direto ao pacote Store, o certificado do MSIX ficará vazio — um detalhe bem frustrante.
Passo 3: Instalar o certificado
Após obter o pacote Test com certificado:
Instalar o certificado
- Clique com o botão direito no arquivo
.msix→ Propriedades → aba Assinaturas Digitais - Selecione a assinatura → Detalhes → Exibir Certificado
- Instalar Certificado → selecione Computador Local → armazene em Pessoas Confiáveis (Trusted People)
Nota: o Publisher (CN) do certificado deve ser idêntico ao <Publisher> no Package.appxmanifest, caso contrário a instalação falhará.
Passo 4: Instalar dependências e o pacote MSIX
Se o seu projeto Windows App SDK está no modo framework-dependent (o padrão), o aplicativo depende do runtime do Windows App Runtime. Na distribuição pela Store as dependências são tratadas automaticamente, mas para testes locais é necessário instalá-las manualmente.
A boa notícia é que a pasta _Test do pacote Test inclui um subdiretório Dependencies, com os pacotes de dependência organizados por arquitetura:
AppPackages/
MyApp_1.0.0.0_x64_Test/
Dependencies/
x64/
Microsoft.WindowsAppRuntime.1.8.msix
...
MyApp_1.0.0.0_x64.msixOrdem de instalação: primeiro instale o runtime em Dependencies, depois instale o aplicativo.
Se você estiver no modo self-contained (com <WindowsAppSDKSelfContained>true</WindowsAppSDKSelfContained> no .csproj), não é necessário instalar dependências adicionais, pois o runtime já está incluído no aplicativo.
Passo 5: Validação completa em máquina virtual limpa
Sua máquina de desenvolvimento tem muitos componentes instalados — diversos SDKs, runtimes, caches — o fato de seu aplicativo funcionar nela não significa que funcionará para o usuário. Recomendamos testar o fluxo completo em um ambiente limpo.
Opções de máquina virtual
Ambas funcionam:
- Hyper-V Quick Create: solução oficialmente recomendada pela Microsoft. Pesquise «Hyper-V Quick Create» no Menu Iniciar e selecione MSIX Packaging Tool Environment para criar a VM
- VMware: solução que eu uso na prática. Crie uma VM limpa com Windows 10/11, tire um snapshot e restaure o estado limpo antes de cada teste
Independentemente da opção escolhida, o objetivo principal é apenas um: aproximar-se o máximo possível do ambiente de primeira instalação do usuário.
O que verificar na VM limpa
- Instalar o certificado autoassinado (fluxo do Passo 3)
- Instalar os pacotes de dependência (Passo 4)
- Instalar o aplicativo
- Iniciar o aplicativo e verificar se as funcionalidades principais estão normais
- Verificar se o Menu Iniciar, bandeja da barra de tarefas, desinstalação, etc. estão funcionando corretamente
Lista de verificação
Antes de enviar à Store, siga esta lista:
- [ ] Gerar pacote Test com configuração Release
- [ ] Executar o WACK e confirmar que não há erros críticos
- [ ] Confirmar que o pacote Test inclui certificado autoassinado (empacotar no modo Sideload primeiro)
- [ ] Instalar o certificado em Local Machine → Trusted People
- [ ] Validar o fluxo completo em VM limpa: instalar certificado → instalar dependências → instalar aplicativo → testar funcionalidades
- [ ] No modo framework-dependent, confirmar que os pacotes de dependência instalam normalmente
- [ ] Aplicativo inicia normalmente, funcionalidades principais disponíveis, Menu Iniciar/desinstalação funcionando corretamente
Este artigo é uma leitura complementar da série Armadilhas da Store.