1 points par kck4156 3 시간 전 | Aucun commentaire pour le moment. | Partager sur WhatsApp

MSIX est le format de packaging moderne de Windows. Il fonctionne sur une base sandboxée, ce qui isole les modifications système comme le registre ou les associations de fichiers, et ne laisse aucun résidu après désinstallation. Avec MSIXBundle, on peut aussi regrouper x64, x86 et ARM64 dans un seul fichier.

Le problème, c’est la distribution.

Pour installer un MSIX en dehors du Store, l’utilisateur doit activer le mode développeur, ouvrir PowerShell et faire confiance à un certificat. Pour un développeur, c’est une procédure évidente, mais pour un utilisateur lambda, ce sont autant d’obstacles. Même si l’on crée une application avec Electron ou Tauri, beaucoup de frameworks ne prennent pas en charge le packaging MSIX.

C’est pour cela que je l’ai créé. MSIX Installer Generator est un outil qui prend en charge tout le processus, du packaging MSIX à la création d’un installateur EXE lançable par double-clic.

Comment c’est parti

À l’origine, ce projet n’avait rien à voir avec MSIX.

Pour distribuer en dehors du Store une application créée avec WinUI 3, je développais un framework d’installation utilisant un format de package maison appelé .atp. La structure consistait à compresser avec 7z, à transmettre le résultat à l’installateur, puis à laisser celui-ci gérer l’enregistrement dans le registre ou la création de raccourcis dans le menu Démarrer. Pour un simple packaging EXE, cela fonctionnait suffisamment bien.

Puis une idée m’est venue : « MSIX prend même en charge la sandbox ; et si je m’en servais pour créer un installateur ? » L’approche existante avec .atp était pratique, mais au final, elle relevait d’une installation traditionnelle qui écrit directement dans le registre et crée des dossiers dans AppData, sans garantir une désinstallation propre. Avec MSIX, Windows isole automatiquement l’application dans une sandbox et, lors de la désinstallation, il ne reste absolument aucun résidu.

J’ai donc commencé à ajouter la prise en charge de l’installation MSIX, mais je me suis vite aperçu que la génération du certificat, la rédaction du manifeste et le packaging devaient tous être réalisés manuellement par l’utilisateur. De nombreux frameworks ne prennent pas non plus en charge le packaging MSIX. J’ai donc fini par créer un outil qui automatise aussi le packaging, et il prend désormais en charge tout le flux, du packaging MSIX à la configuration de l’installateur EXE.

Quel problème voulais-je résoudre

Distribuer via MSIX offrait une très mauvaise expérience utilisateur.

  • « Activez le mode développeur » → l’utilisateur est déconcerté
  • « Ouvrez PowerShell en tant qu’administrateur et saisissez une commande » → il l’est encore plus
  • « Faites confiance au certificat » → c’est le pire moment

Je voulais combiner la simplicité des installateurs EXE traditionnels, où il suffit de double-cliquer, avec les avantages de sandbox de MSIX.

Ce que fait MSIX Installer Generator

Il fait principalement deux choses.

1. Packaging MSIX

La génération du certificat, la rédaction du manifeste et le packaging des sorties de build se font depuis l’interface graphique. Même si le framework ne prend pas en charge le packaging MSIX, il suffit d’indiquer le dossier de sortie du build. Si vous ajoutez des dossiers par architecture, comme x64 ou ARM64, l’outil lit les en-têtes PE pour les détecter automatiquement, puis génère un .msix unique ou un .msixbundle multi-architecture.

2. Configuration de l’installateur EXE

Il convertit le MSIX généré en installateur EXE autonome, installable d’un simple double-clic. L’installateur gère automatiquement toutes les étapes nécessaires au sideloading, comme l’installation du certificat et la gestion des dépendances. Du point de vue de l’utilisateur, il suffit de télécharger l’installateur et de l’exécuter. Pas de PowerShell, pas de mode développeur, pas de prompt de certificat.

Il existe aussi un outil CLI

En plus de l’interface graphique, j’ai aussi publié sur NuGet un outil CLI (aticmsixgen). Il permet de gérer entièrement en ligne de commande le packaging MSIX et la configuration EXE, dans des workflows de CI ou d’automatisation par IA. Il est compilé avec NativeAOT sous forme d’exécutable unique sans dépendance de runtime.

dotnet tool install --global aticmsixgen  

La génération du certificat, la rédaction du manifeste, le packaging MSIX et la configuration EXE peuvent tous être effectués depuis la CLI.

À qui cela convient

  • À ceux qui veulent distribuer via MSIX mais trouvent le processus de sideloading contraignant
  • À ceux qui utilisent des frameworks comme Electron, Tauri ou WPF, qui ne prennent pas en charge nativement le packaging MSIX
  • À ceux qui veulent distribuer plusieurs architectures, comme x64 et ARM64, dans un seul installateur
  • À ceux qui veulent automatiser le packaging MSIX et la configuration EXE en CI

Liens

Le projet est sous licence MIT, et vous pouvez laisser vos retours ou signaler des issues sur GitHub. Vous pouvez aussi les écrire en coréen.

Aucun commentaire pour le moment.

Aucun commentaire pour le moment.