1 puntos por kck4156 3 시간 전 | Aún no hay comentarios. | Compartir por WhatsApp

MSIX es el formato de empaquetado moderno de Windows. Funciona con base en un sandbox, por lo que los cambios del sistema, como el registro o las asociaciones de archivos, quedan aislados, y al desinstalar no queda ningún residuo. Con MSIXBundle también se pueden incluir x64, x86 y ARM64 en un solo archivo.

El problema es la distribución.

Para instalar un MSIX fuera de la Store, el usuario tiene que activar el modo desarrollador, abrir PowerShell y confiar en un certificado. Para un desarrollador es un proceso normal, pero para un usuario común todo eso es una barrera. Además, aunque hagas una app con Electron o Tauri, muchos frameworks no admiten empaquetado MSIX.

Por eso la creé. MSIX Installer Generator es una herramienta que se encarga de todo de una vez, desde el empaquetado MSIX hasta la creación de un instalador EXE de doble clic.

Cómo empezó

Originalmente, este proyecto no tenía relación con MSIX.

Estaba creando un framework de instalación con un formato de paquete propio llamado .atp para distribuir fuera de la Store una app hecha con WinUI 3. La estructura consistía en comprimir con 7z, pasarlo al instalador, y que el instalador se encargara del registro y de crear accesos directos en el menú Inicio. Como empaquetado EXE simple, funcionaba bastante bien.

Entonces se me ocurrió: “Si MSIX ya ofrece sandbox, ¿qué tal si hago un instalador con esto?”. El método existente con .atp era cómodo, pero al final era una instalación tradicional que escribía directamente en el registro y creaba carpetas en AppData, así que no garantizaba una desinstalación limpia. Con MSIX, Windows se encarga de aislar todo en un sandbox y, al desinstalar, no queda ningún residuo.

Así que empecé a agregar soporte para instalar MSIX, pero al hacerlo apareció el problema de que el usuario tenía que encargarse de todo: generar certificados, escribir el manifiesto y empaquetar. Además, muchos frameworks no soportan empaquetado MSIX. Al final terminé creando una herramienta que también automatiza el empaquetado, y ahora maneja todo en un solo flujo, desde el empaquetado MSIX hasta la configuración del instalador EXE.

Qué problema quería resolver

La experiencia de usuario al distribuir con MSIX era demasiado mala.

  • “Activa el modo desarrollador” → el usuario se desconcierta
  • “Abre PowerShell como administrador e ingresa el comando” → se desconcierta aún más
  • “Confía en el certificado” → el mayor desconcierto

Quería combinar la facilidad de un instalador EXE tradicional, donde basta con hacer doble clic, con las ventajas del sandbox de MSIX.

Qué hace MSIX Installer Generator

Son básicamente dos cosas.

1. Empaquetado MSIX

Permite gestionar desde una GUI la generación de certificados, la escritura del manifiesto y el empaquetado de la salida de build. Aunque el framework no soporte empaquetado MSIX, basta con indicar la carpeta de salida del build. Si agregas carpetas por arquitectura, como x64 o ARM64, lee el encabezado PE para detectarlas automáticamente y genera un único .msix o un .msixbundle multi-arquitectura.

2. Configuración del instalador EXE

Convierte el MSIX generado en un instalador EXE independiente que se instala con un solo doble clic. El instalador se encarga automáticamente de todos los pasos necesarios para el sideloading, como la instalación de certificados y el manejo de dependencias. Desde el punto de vista del usuario, solo descarga y ejecuta el instalador. No aparece PowerShell, ni modo desarrollador, ni prompts de certificados.

También hay una herramienta CLI

Además de la GUI, también subí a NuGet una herramienta CLI (aticmsixgen). Permite manejar por línea de comandos tanto el empaquetado MSIX como la configuración del EXE en flujos de CI o automatización con IA. Está compilada con NativeAOT, así que es un ejecutable único sin dependencias de runtime.

dotnet tool install --global aticmsixgen

Desde la CLI se puede hacer todo: generar certificados, escribir el manifiesto, empaquetar MSIX y configurar el EXE.

A quién le puede servir

  • Quienes quieren distribuir con MSIX, pero ven el proceso de sideloading como una carga
  • Quienes usan frameworks que no soportan empaquetado MSIX de forma nativa, como Electron, Tauri o WPF
  • Quienes quieren distribuir varias arquitecturas, como x64 y ARM64, en un solo instalador
  • Quienes quieren automatizar en CI el empaquetado MSIX y la configuración del EXE

Enlaces

Tiene licencia MIT, y pueden dejar feedback o issues en GitHub. También está bien si los dejan en coreano.

Aún no hay comentarios.

Aún no hay comentarios.