Aller au contenu principal

Guide Windows Store

Avec Windows 10, le bon vieux executable win32 a un nouveau frère: La plateforme Universelle de Windows. Le nouveau format .appx ne permet pas seulement d'avoir de nouvelles API puissantes comme Cortana ou Push Notifications, mais via le Windows Store, il simplifie également les installations et les mises à jour.

Microsoft à développé un outil qui compile les apps Electron en packages .appx, permettant aux développeurs d'utiliser une partie des goodies trouvés dans le nouveau modèle d'application. Ce guide explique comment l'utiliser - et quelles sont les capacités et les limites d'un package Electron AppX.

Contexte et exigences

Windows 10 "Anniversary Update" est capable d'exécuter des binaires win32 .exe en les lançant avec un système de fichier et un registre virtualisé. Ils sont tout les deux créés durant la compilation en exécutant l'app et l'installer a l'intérieur d'un conteneur de Windows, ce qui permet à Windows d'identifier exactement quelles modifications du système d'exploitation sont effectuées pendant l'installation. Appareiller l'exécutable avec un système de fichiers virtuel et un registre virtuel permet à Windows la désinstallation et l'installation en un seul clic.

En addition, l'exe est lancé à l'intérieur du modèle appx - ce qui signifie qu'il peut utiliser beaucoup des API disponibles pour la plateforme Universelle Windows. Pour gagner encore plus de fonctionnalités, une app Electron peut s'associer avec une tâche invisible UWP d'arrière-plan lancée avec l'exe - comme un partenaire pour ainsi exécuter des tâches en arrière-plan, recevoir des notifications push, ou pour communiquer avec d'autres applications UWP.

Pour compiler n’importe quelle app Electron existante, assurez-vous que vous répondez aux exigences suivantes :

  • Windows 10 avec Anniversary Update (sorti le 2 Août 2016)
  • Le SDK Windows 10, downloadable here
  • Au minimum Node 4 (pour vérifier, exécutez node -v)

Ensuite, installez electron-windows-store CLI:

npm install -g electron-windows-store

Étape 1 : Empaqueter votre Application Electron

Package the application using @electron/packager (or a similar tool). Assurez vous de supprimer tous les node_modules dont vous n'avez pas besoin dans votre application finale, puisque tout quel module dont vous n'avez pas besoin augmentera inutilement la taille de votre application.

La sortie devrait ressembler à peu près à ceci :

├── Ghost.exe
├── LICENSE
├── content_resources_200_percent.pak
├── content_shell.pak
├── d3dcompiler_47.dll
├── ffmpeg.dll
├── icudtl.dat
├── libEGL.dll
├── libGLESv2.dll
├── locales
│   ├── am.pak
│   ├── ar.pak
│   ├── [...]
├── node.dll
├── resources
│   └── app.asar
├── v8_context_snapshot.bin
├── squirrel.exe
└── ui_resources_200_percent.pak

Étape 2: Exécuter electron-windows-store

Depuis un PowerShell avec privilèges élevés (lancé "en tant qu'Administrateur"), exécutez electron-windows-store avec les paramètres requis, en mettant le dossier d'entrée, le dossier de sortie, le nom et la version de l'application, et confirmer que node_modules doit être mis à plat .

electron-windows-store `
--input-directory C:\myelectronapp `
--output-directory C:\output\myelectronapp `
--package-version 1.0.0.0 `
--package-name myelectronapp

Une fois exécuté, l’outil se met au travail : il accepte votre app Electron en entrée, et met à plat les node_modules. Ensuite, il archive votre application comme app.zip. En utilisant un installateur et un conteneur de Windows, l’outil crée un paquet AppX « élargi » - contenant le manifeste d’Application Windows (AppXManifest.xml) ainsi que le système de fichiers virtuel et le registre virtuel à l’intérieur de votre dossier de sortie.

Une fois les fichiers AppX étendus créés, l’outil utilise le Windows App Packager (MakeAppx.exe) pour créer un package d'unseul fichier AppX à partir des fichiers sur le disque. Enfin, l’outil peut également servir à créer un certificat de confiance sur votre ordinateur pour signer le nouveau paquet AppX. Avec le package AppX signé, la CLI peut également automatiquement installer le package sur votre machine.

Étape 3 : Utiliser le Package AppX

Afin d’exécuter votre paquet, vos utilisateurs auront besoin de Windows 10 "Anniversaire Update" - plus de détails sur comment mettre à jour Windows peuvent être trouvés ici.

En opposition aux traditionelles apps UWP, les apps empaquetées doivent actuellement subir un processus de vérification manuelle, pour lequel vous pouvez appliquer ici. Entre-temps, tous les utilisateurs seront en mesure d’installer votre paquet en double-cliquant dessus, donc une soumission au store ne sera ne peut-être pas nécessaire si vous cherchez simplement une méthode d’installation facile. Dans des environnements gérés (généralement des entreprises), l'applet de commande PowerShell Add-AppxPackage permet de l'installer de façon automatisée.

Une autre limitation importante est que le paquet AppX compilé contient toujours un fichier exécutable win32 - et qu’il ne fonctionnera donc pas sur Xbox, HoloLens ou les téléphones.

Facultatif : Ajouter des fonctionnalités UWP en utilisant une tâche de fond

Vous pouvez coupler votre app Electron avec une tâche en arrière-plan UWP invisible qui vous permet de tirer pleinement parti des fonctionnalités de Windows 10 - comme notifications push, ou les tuiles vivantes.

Pour voir comment une app Electron peut utiliser une tâche de fond pour envoyer des notifications toast et tuiles vivantes, consultez l'exemple fourni par Microsoft.

Facultatif: Conversion en utilisant la virtualisation de conteneur

Pour générer le package AppX, l'electron-windows-store CLI utilise un modèle qui doit fonctionner pour la plupart des applications Electron. Toutefois, si vous utilisez un programme d’installation personnalisé, ou si vous rencontrez des problèmes avec le package généré, vous pouvez essayer de créer un package en compilant avec un conteneur Windows - dans ce mode, le CLI va installer et exécuter votre application dans un conteneur vide de Windows pour déterminer quelles modifications votre application fait au système d’exploitation.

Avant d'exécuter le CLI pour la première fois, vous devrez configurer le "Windows Desktop App Converter". Cela prendra quelques minutes, mais ne vous inquiétez pas il suffit de le faire une fois. Téléchargez le Desktop App Converter ici. Vous recevrez deux fichiers: DesktopAppConverter.zip et BaseImage-14316.wim.

  1. Décompressez DesktopAppConverter.zip. Depuis un PowerShell avec privilèges élevés (lancé "en tant qu'Administrateur"),, faire en sorte que votre stratégie d'exécution de systèmes permet d'exécuter tout que nous avons besoin d'exécuter en appelant Set-ExecutionPolicy bypass.
  2. Ensuite, exécutez l'installation du Desktop App Converter, en lui passant l'emplacement du Windows base Image (téléchargé comme BaseImage-14316.wim), en exécutant la commande .\DesktopAppConverter.ps1 -Setup -BaseImage .\BaseImage-14316.wim.
  3. Si la commande ci-dessus vous demande un redémarrage, veuillez redémarrer votre machine et exécuter la commande ci-dessus une nouvelle fois après le redémarrage réussi.

Une fois l’installation réussie, vous pouvez passer à la compilation de votre app Electron.