Partilhar via


Escolha um caminho de distribuição para a sua aplicação Windows

A forma como distribui a sua aplicação Windows afeta os custos de assinatura de código, a mecânica das atualizações, a gestão empresarial e a facilidade com que os clientes a descobrem e instalam. Este artigo compara os principais caminhos para o ajudar a tomar a decisão certa.

Sugestão

Para a maioria dos programadores, a Microsoft Store é o caminho recomendado. Proporciona uma vasta capacidade de descoberta, uma experiência de instalação segura e não tem infraestrutura para gerir submissões de MSIX (a Microsoft re-assina e aloja o pacote). Também são aceites submissões de instaladores Win32 MSI/EXE — a publicadora deve hospedar um URL de instalador HTTPS versionado — consulte submissão da aplicação MSI/EXE. As submissões do MSIX têm assinatura de código gratuita e entrega integrada de atualizações.

Observação

Se a sua aplicação for construída com tecnologias web (HTML, JavaScript, CSS), uma Progressive Web App (PWA) é o caminho mais rápido para o Microsoft Store — não são necessárias ferramentas nativas de embalagem.

Caminhos de distribuição em resumo

Path Melhor para Custo de assinatura de código Atualização automática MDM Empresarial Distribuído através da Loja
Microsoft Store (MSIX) Aplicações para consumidores e empresas, alcance alargado ✅ Grátis (A loja renova a sua encomenda) ✅ Integrado ✅ através do Intune com o Portal da Empresa ✅ Sim
Microsoft Store (instalador MSI/EXE) Aplicações Win32 existentes com instalador próprio 💲 O publicador deve assinar o instalador e todos os ficheiros PE com um certificado que encadeia ao Microsoft Trusted Root Program ❌ Manual (a aplicação ou instalador trata das atualizações) ✅ através do Intune com o Portal da Empresa ✅ Sim
PWA (Progressive Web App) Aplicações web e experiências baseadas na web ✅ Grátis (Placas de loja para si) ✅ Através da Loja ou do navegador ✅ através do Intune com o Portal da Empresa ✅ Sim
MSIX sideload (enterprise) Aplicações LOB internas via Intune/ConfigMgr 💲 Assinatura de Artefactos do Azure (anteriormente Assinatura Confiável) (~$10/mês) ou perfil de certificado auto-assinado + Intune ✅ Via ficheiro do App Installer ou MDM ✅ Nativo ❌ Não
Descarregamento direto do MSIX (ISV) Aplicações comerciais vendidas a partir do seu próprio site 💲 certificado confiável CA requerido (Azure Assinatura de Artefactos (anteriormente Trusted Signing) recomendado) ✅ Via .appinstaller ficheiro ⚠️ Limitado ❌ Não
Embalagem com localização externa Aplicações existentes com instalador próprio que necessitam de funcionalidades do Windows 💲 Igual ao download direto do MSIX ✅ O teu mecanismo atual ⚠️ Limitado ⚠️ Via submissão da MSI/EXE Store (assinatura do editor necessária)
WinUI 3 não empacotado Nicho: soluções empresariais sem capacidade MSIX ou com simplicidade máxima de instalação 💲 Certificação recomendada para SmartScreen ❌ Apenas manual ⚠️ Limited (via implementação do Intune/ConfigMgr Win32) ⚠️ Submissão através da MSI/EXE Store (necessária assinatura do editor)

Publicar na Microsoft Store é a solução de distribuição mais completa para aplicações Windows. Estão disponíveis dois caminhos de submissão:

  • Submissão MSIX — recomendada para novas aplicações e aplicações WinUI 3. A Microsoft renova o pacote; não é necessária compra de certificados. Inclui atualizações geridas pela Loja, lançamentos por etapas e downloads diferenciais.
  • Submissão de instalador MSI/EXE — para aplicações Win32 existentes com o seu próprio instalador. O Publisher submete uma URL HTTPS versionada ao instalador alojado na CDN do próprio publisher; a Store descarrega e executa o instalador a partir dessa URL como parte do fluxo de instalação da Loja. Publisher deve assinar o instalador com um certificado que forma uma cadeia para uma CA no Programa Raiz Fidedigna da Microsoft. As atualizações são da responsabilidade da aplicação.

O que obténs (ambos os caminhos):

  • Descoberta através da pesquisa da loja e das coleções selecionadas
  • UX de instalação confiável
  • Processamento de receitas, reembolsos e análises incluídos
  • Implementação empresarial via Intune com Portal da Empresa

Requisitos:

  • MSIX é o formato de pacote recomendado — as aplicações WinUI 3 são empacotadas por padrão. Aplicações Win32 com um instalador MSI ou EXE existente também podem submeter através do caminho de instalação MSI/EXE (nota: as submissões MSI/EXE requerem um encadeamento de certificado a uma CA no Microsoft Trusted Root Program — auto-assinado não é aceite; Atualizações geridas pela loja não estão disponíveis para este caminho)
  • A aplicação deve passar pelos requisitos de certificação da loja: requisitos MSIX | requisitos MSI/EXE
  • Conta de desenvolvedor necessária (Centro de Parceiros)

Quando escolher isto:

  • A sua aplicação direciona-se amplamente para consumidores ou utilizadores empresariais
  • Quer a infraestrutura de distribuição mais simples possível
  • Estás a construir uma nova aplicação WinUI 3 (já estás embalado — basta submeter)

Publicar no Microsoft Store

Progressive Web App (PWA)

Se a sua aplicação for um website ou construída principalmente com tecnologias web, uma Progressive Web App é o caminho mais rápido para a Microsoft Store — sem necessidade de ferramentas nativas de embalagem ou compra de assinatura de código.

Uma PWA é uma aplicação web que os navegadores podem instalar como uma aplicação autónoma. Pode correr offline, enviar notificações push, aparecer no menu Iniciar e na barra de tarefas, e ser distribuído através da Microsoft Store. Use PWABuilder para preparar o seu site para submissão na Loja em minutos.

O que obtém:

  • Distribuição pela loja com assinatura gratuita de código-fonte (a loja assina o pacote)
  • Funciona em qualquer dispositivo com um navegador moderno
  • Não é necessária a criação manual de MSIX, WiX ou instaladores — ferramentas como o PWABuilder geram o pacote de submissão para a Store para si
  • Entrega de atualizações incorporada — os utilizadores recebem sempre o seu conteúdo web mais recente (atualizações de conteúdo alojado sem necessidade de reenviar a Store)

Requisitos:

Limitations:

  • APIs Windows nativas profundas (acesso ao sistema de ficheiros, integração de hardware para além das APIs Web) não estão disponíveis sem pontes adicionais
  • A lógica da aplicação corre num contexto web — não adequada para aplicações que requerem APIs nativas .NET, C++ ou WinRT

Quando escolher isto:

  • A tua aplicação é uma aplicação web, ferramenta SaaS ou site de conteúdos que queres tornar instalável
  • Queres o caminho mais rápido para a Loja com ferramentas mínimas
  • Os seus requisitos de funcionalidades são satisfeitos pelas APIs Web modernas

Visão Geral do Progressive Aplicações Web
Publique uma PWA no Microsoft Store com PWABuilder

Instalação externa de MSIX — distribuição de aplicações empresariais de linha de negócios

Para aplicações internas de linha de negócio que serão implementadas em dispositivos geridos via Microsoft Intune ou Gestor de Configuração, o sideloading do MSIX é o caminho recomendado.

O que obtém:

  • Instalação silenciosa e atualização através de políticas MDM
  • Integração com a gestão de dispositivos empresariais (Intune, ConfigMgr)
  • Identidade completa do pacote e acesso às funcionalidades do Windows (notificações, tarefas em segundo plano, etc.)

Assinatura de códigos:

Requisitos:

  • Os dispositivos-alvo devem confiar no certificado de assinatura (seja através de MDM ou de Política de Grupo)
  • O carregamento lateral deve ser permitido nos dispositivos-alvo (ativado por defeito no Windows 10 versão 2004+ e em todos os dispositivos Windows 11)

Quando escolher isto:

  • Distribuição de uma aplicação interna para dispositivos geridos pela empresa
  • Tem uma equipa de TI que pode configurar a confiança de certificados via Intune ou Group Policy

Implementar aplicações MSIX com Intune
Implementar aplicações MSIX com Gestor de Configuração

MSIX download direto — ISV e aplicações comerciais

Para aplicações comerciais vendidas diretamente do seu site (não através da Loja), pode distribuir pacotes MSIX com um .appinstaller ficheiro para suporte à atualização automática.

O que obtém:

  • Experiência de instalação familiar através do App Installer
  • Suporte para atualização automática via o ficheiro .appinstaller alojado no seu servidor
  • Identidade completa do pacote e acesso às funcionalidades do Windows
  • Controlo sobre o seu próprio canal de distribuição e preços

Assinatura de códigos:

  • É necessário um certificado de assinatura de código confiável pela CA — os utilizadores não podem instalar pacotes MSIX não assinados ou auto-assinados sem confiar manualmente no certificado
  • Azure Artifact Signing (anteriormente Trusted Signing) (~$10/mês) é a opção recomendada pela Microsoft: não é necessário token de hardware, integra-se com pipelines CI/CD
  • Também são aceites certificados OV tradicionais (tipicamente entre 150 e 300 dólares por ano de uma Autoridade Certificadora).

SmartScreen: Novos certificados acumulam reputação SmartScreen ao longo do tempo, com base no volume de downloads. Espere alguns avisos do SmartScreen para novos lançamentos. Consulte a reputação do SmartScreen para desenvolvedores de Windows aplicações.

Importante

O ms-appinstaller: protocolo URI (instalação do navegador com um clique) está desativado por defeito desde dezembro de 2023. Faça ligação direta ao ficheiro .appinstaller para download, ou considere publicá-lo na Store para um maior alcance. Ver Estado atual das funcionalidades de distribuição de Windows aplicações.

Quando escolher isto:

  • És um ISV a vender software diretamente do teu site
  • Precisas de controlo sobre a experiência do instalador, preços ou licenciamentos que a loja não suporta
  • Os seus clientes são empresas que adquirem software fora da loja

Visão geral dos ficheiros do Instalador de Aplicações
Aplicações de atualização e reparação automática

Embalagem com localização externa (pacote disperso)

Se tiver uma aplicação existente com o seu próprio instalador (WiX, NSIS, InstallShield) e quiser adicionar funcionalidades do Windows que exijam identidade de pacote – sem substituir o instalador pelo MSIX – use a embalagem com localização externa.

O que obtém:

  • Identidade do pacote sem alterar o instalador ou as localizações de ficheiros binários
  • Acesso às funcionalidades do Windows: notificações, tarefas em segundo plano, associações de tipos de ficheiros, manipuladores de protocolo
  • O seu mecanismo atual de instalação e atualização mantém-se no lugar

O que não percebes:

  • Submissão direta na MSIX Store (o pacote sparse não é ele próprio submetido à Store; no entanto, o seu próprio instalador subjacente pode ser submetido pelo caminho do instalador MSI/EXE Store)
  • O modelo de instalação/desinstalação limpa do MSIX completo

Quando escolher isto:

  • Tem uma aplicação Win32/WPF/WinForms já existente com um instalador estabelecido
  • Queres funcionalidades específicas da API do Windows que exijam identidade de pacote
  • Migrar totalmente para o MSIX não é viável neste momento

Conceder identidade ao pacote através de empacotamento em localização externa

WinUI 3 não empacotado

A distribuição não empacotada remove completamente o MSIX da imagem — a aplicação corre diretamente a partir de uma pasta sem manifesto de pacote. Esta é uma opção de nicho adequada a cenários específicos.

O que obtém:

  • Saída de build mais simples (uma pasta de ficheiros, sem ferramentas MSIX)
  • Não é necessária infraestrutura MSIX nas máquinas-alvo
  • Funciona em máquinas onde o sideloading MSIX não está ativado

Limitations:

  • No single-file EXE — O runtime de SDK de Aplicações Windows deve ser enviado como ficheiros separados juntamente com o executável
  • Implementação em tempo de execução — Deve incluir o instalador do runtime do SDK de Aplicações Windows, ou usar uma implementação autónoma, o que resulta numa saída maior
  • Sem identidade de pacote — Sem atualizações automáticas, sem tarefas em segundo plano, sem associações de tipos de ficheiro via manifesto
  • Submissão de pacote à Loja sem identidade MSIX — Este modelo não tem identidade de pacote e não pode ser submetido à Loja como um pacote MSIX. Um instalador tradicional (MSI/EXE) pode ser submetido separadamente, mas isso está fora deste caminho de distribuição.
  • Avisos do SmartScreen, a menos que sejam assinados com um certificado confiável por CA

Quando escolher isto:

  • O seu ambiente de destino não pode usar MSIX (incomum; a maioria dos ambientes empresariais geridos suporta MSIX)
  • Estás a construir uma ferramenta interna onde a sobrecarga do MSIX não é justificada

Para a maioria das aplicações WinUI 3, o MSIX (via Store ou download direto) é o melhor caminho. As limitações acima muitas vezes surpreendem os desenvolvedores que as descobrem depois de investirem em distribuição não empacotada.

Distribuir uma aplicação WinUI 3 não embalada — guia passo a passo com opções de implementação em tempo de execução

Muitas aplicações do Windows são distribuídas usando ClickOnce, MSI, WiX, Inno Setup ou tecnologias semelhantes. Estas são opções estabelecidas e suportadas, especialmente para aplicações que não conseguem usar MSIX ou não precisam de distribuição na Loja. A tabela abaixo resume as opções comuns e as suas compensações.

Método Atualização automática Assinatura de código necessária Elegível para loja Melhor para
MSIX via Store ✅ Integrado ✅ Grátis (Placas de loja) ✅ Sim A maioria das aplicações — ponto de partida recomendado
MSIX + .appinstaller ✅ Integrado 💲 Certificado confiável por uma Autoridade Certificadora ❌ Não ISVs que distribuem diretamente a partir de um site
ClickOnce ✅ Integrado 💲 Certificação recomendada ❌ Não Aplicações WPF/WinForms; não suportadas para o WinUI 3
Configuração MSI / WiX / Inno ⚠️ Manual ou personalizado 💲 Certificação recomendada ⚠️ Via submissão da MSI/EXE Store (ver abaixo) Aplicações com requisitos de instalação complexos ou instaladores existentes
EXE autónomo (xcopy/zip) ❌ Nenhum 💲 Certificação recomendada ❌ Não Utilidades simples; Públicos de programadores/utilizadores avançados
Manifesto Winget ✅ Via winget 💲 Certificação recomendada ❌ Não Qualquer das opções acima — aumenta a descobribilidade através de winget install

ClickOnce

O ClickOnce é uma tecnologia de implementação .NET integrada no Visual Studio. Aloja um manifesto num servidor web ou numa partilha de ficheiros; os utilizadores instalam-se a partir do URL do manifesto e o ClickOnce trata das verificações de atualização no lançamento. É uma boa opção para aplicações WPF e WinForms distribuídas a uma base de utilizadores conhecida.

O ClickOnce não é suportado para aplicações WinUI 3. Usa o MSIX com .appinstaller para distribuição direta do WinUI 3.

Segurança e implementação do ClickOnce

MSI, WiX, Inno Setup e NSIS

Os instaladores tradicionais de EXE e MSI continuam comuns para aplicações Windows com requisitos de instalação complexos (instalação de drivers, serviços de sistema, configuração do registo). Ferramentas como o WiX Toolset, Inno Setup e NSIS são mantidas pela comunidade e amplamente utilizadas. O suporte a atualizações requer a sua própria implementação.

Estes formatos não são elegíveis para a Loja como pacotes MSIX, mas podem ser submetidos à Loja através do caminho de instalação MSI/EXE (requer um encadeamento de certificados para uma CA no Microsoft Trusted Root Program e um instalador capaz de instalação silenciosa). Também podes combiná-los com embalagem com localização externa se precisares de identidade de pacote para funcionalidades específicas Windows.

EXE autónomo (implementação xcopy)

dotnet publish --self-contained produz uma pasta de ficheiros (ou um EXE de ficheiro único) que os utilizadores podem executar sem instalar .NET. Este é o modelo de distribuição mais simples, mas exige que os utilizadores descarreguem manualmente uma nova versão. Adequa-se a ferramentas de linha de comandos, utilitários para programadores e aplicações para utilizadores avançados.

winget — Adicionar facilidade de descoberta a qualquer percurso de distribuição

Independentemente do formato de embalagem, pode submeter um manifesto ao Windows Gestor de Pacotes Community Repository para tornar a sua aplicação instalável via winget install <your-app>. Isto não substitui o método de distribuição existente — adiciona um caminho de instalação em linha de comandos valorizado por públicos de programadores e técnicos.