1 pontos por kck4156 3 시간 전 | Ainda não há comentários. | Compartilhar no WhatsApp

MSIX é o formato de empacotamento mais recente do Windows. Como funciona com base em sandbox, mudanças no sistema como registro e associação de arquivos ficam isoladas, e ao desinstalar não sobra absolutamente nada. Também é possível reunir x64, x86 e ARM64 em um único arquivo com MSIXBundle.

O problema é a distribuição.

Para instalar um MSIX fora da Store, o usuário precisa ativar o modo de desenvolvedor, abrir o PowerShell e confiar no certificado. Para desenvolvedores isso é um processo natural, mas para usuários comuns tudo isso vira uma barreira. E mesmo criando apps com Electron ou Tauri, muitos frameworks não oferecem suporte a empacotamento em MSIX.

Por isso eu criei o MSIX Installer Generator, uma ferramenta que cuida de tudo de uma vez, do empacotamento MSIX até a geração de um instalador EXE de duplo clique.

Como isso começou

Originalmente, este projeto não tinha relação com MSIX.

Eu estava criando um framework de instalador para distribuir fora da Store um app feito com WinUI 3, usando um formato de pacote próprio chamado .atp. A estrutura era comprimir com 7z, passar para o instalador e deixar que ele cuidasse do registro no sistema e da criação de atalhos no menu Iniciar. Com empacotamento EXE simples isso já funcionava bem o suficiente.

Foi então que pensei: “Se eu usar MSIX, ele ainda oferece sandbox. E se eu criar um instalador com isso?” O método .atp existente era prático, mas no fim ainda era uma instalação tradicional, escrevendo diretamente no registro e criando pastas em AppData, então uma desinstalação limpa não era garantida. Com MSIX, o próprio Windows isola tudo em sandbox e, na remoção, não deixa nenhum resíduo.

Então comecei a adicionar suporte à instalação de MSIX, mas logo percebi outro problema: geração de certificado, criação de manifesto e empacotamento precisavam ser feitos manualmente pelo usuário. Também havia muitos casos em que o framework nem suportava empacotamento MSIX. No fim, acabei criando uma ferramenta que automatiza até o empacotamento, e agora ela faz tudo de uma vez, do empacotamento MSIX até a montagem do instalador EXE.

Que problema eu queria resolver

A experiência de distribuição com MSIX era ruim demais para o usuário.

  • “Ative o modo de desenvolvedor” → o usuário fica confuso
  • “Abra o PowerShell como administrador e digite um comando” → fica ainda mais confuso
  • “Confie no certificado” → aqui complica de vez

Eu queria juntar a praticidade dos instaladores EXE tradicionais, em que basta dar duplo clique, com as vantagens de sandbox do MSIX.

O que o MSIX Installer Generator faz

São basicamente duas coisas.

1. Empacotamento MSIX

A ferramenta faz pela GUI a geração de certificado, a criação do manifesto e o empacotamento da saída de build. Mesmo que o framework não ofereça suporte a empacotamento MSIX, basta apontar a pasta de saída do build. Se você adicionar pastas por arquitetura, como x64 e ARM64, ela lê o cabeçalho PE para detectar automaticamente e gera um .msix único ou um .msixbundle com múltiplas arquiteturas.

2. Montagem do instalador EXE

Ela converte o MSIX gerado em um instalador EXE autônomo que instala tudo com um único duplo clique. Todo o processo necessário para sideloading (instalação de certificado, tratamento de dependências etc.) é feito automaticamente pelo instalador. Para o usuário, basta baixar e executar o instalador. Não aparece PowerShell, nem modo de desenvolvedor, nem prompt de certificado.

Também há uma ferramenta de CLI

Além da GUI, também publiquei no NuGet uma ferramenta de CLI (aticmsixgen). Dá para fazer todo o empacotamento MSIX e a montagem do EXE pela linha de comando em workflows de CI ou automação com IA. Ela é compilada com NativeAOT, então é um executável único sem dependências de runtime.

dotnet tool install --global aticmsixgen  

Tudo pode ser feito pela CLI: geração de certificado, criação de manifesto, empacotamento MSIX e montagem do EXE.

Indicado para quem

  • Quer distribuir com MSIX, mas acha o processo de sideloading pesado demais
  • Usa frameworks como Electron, Tauri e WPF, que não oferecem suporte nativo a empacotamento MSIX
  • Quer distribuir várias arquiteturas, como x64 e ARM64, em um único instalador
  • Quer automatizar empacotamento MSIX e montagem de EXE no CI

Links

A licença é MIT, e feedbacks ou issues podem ser deixados no GitHub. Pode escrever em coreano também.

Ainda não há comentários.

Ainda não há comentários.