Electron-Windows-Store : une CLI qui prend la sortie packagée de votre application Electron, puis la convertit en un package AppX. Cela vous permet de soumettre votre application Electron au Windows Store ?. Vous pouvez également distribuer votre application au format .appx
sans utiliser le Windows Store, permettant aux utilisateurs de simplement double-cliquer sur votre .appx
pour l'installer automatiquement.
Pour installer cet outil de ligne de commande, récupérez-le directement depuis npm :
npm install -g electron-windows-store
Ensuite, configurez votre PowerShell :
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned
Pour transformer une application Electron en package AppX, exécutez :
electron-windows-store --input-directory C:myelectronapp --output-directory C:outputmyelectronapp --package-version 1.0.0.0 --package-name myelectronapp
Cet outil prend en charge deux méthodes pour créer des packages AppX : soit à l'aide d'opérations de copie de fichiers manuelles, soit à l'aide de conteneurs Windows. La première option nécessite uniquement le SDK Windows 10, tandis que la deuxième option nécessite également le Desktop App Converter.
Avant d'exécuter la CLI Electron-Windows-Store, assurons-nous que toutes les conditions préalables sont en place. Vous aurez besoin de :
node -v
) Packagez l'application à l'aide d'Electron-Packager (ou quelque chose de similaire). Assurez-vous de supprimer les node_modules dont vous n'avez pas besoin dans votre application finale.
Le résultat devrait ressembler à peu près à ceci :
├── Ghost.exe
├── LICENSE
├── content_resources_200_percent.pak
├── node.dll
├── pdf.dll
├── resources
│ ├── app
│ └── atom.asar
├── snapshot_blob.bin
├── [... and more files]
À partir d'un PowerShell élevé (exécutez-le "en tant qu'administrateur") , exécutez electron-windows-store
avec les paramètres requis, en transmettant les répertoires d'entrée et de sortie, le nom et la version de l'application. Si vous ne transmettez pas ces paramètres, nous vous les demanderons simplement.
electron-windows-store --input-directory C:myelectronapp --output-directory C:outputmyelectronapp --package-version 1.0.0.0 --package-name myelectronapp
Ce sont toutes des options pour la CLI :
-h, --help output usage information
-V, --version output the version number
-c, --container-virtualization Create package using Windows Container virtualization
-b, --windows-build Display Windows Build information
-i, --input-directory <path> Directory containing your application
-o, --output-directory <path> Output directory for the appx
-p, --package-version <version> Version of the app package
-n, --package-name <name> Name of the app package
--package-display-name <displayName> Display name of the package
--package-description <description> Description of the package
--package-background-color <color> Background color for the app icon (example: #464646)
-e, --package-executable <executablePath> Path to the package executable
-a, --assets <assetsPath> Path to the visual assets for the appx
-m, --manifest <manifestPath> Path to a manifest, if you want to be overwritten
-d, --deploy <true|false> Should the app be deployed after creation?
--identity-name <name> Name for identity
--publisher <publisher> Publisher to use (example: CN=developmentca)
--publisher-display-name <publisherDisplayName> Publisher display name to use
--make-pri <true|false> Use makepri.exe (you don't need to unless you know you do)
--windows-kit <windows-kit> Path to the Windows Kit bin folder
--dev-cert <dev-cert> Path to the developer certificate to use
--cert-pass <cert-pass> Password to use when signing the application (only necessary if a p12 certication is used)
--desktop-converter <desktop-converter> Path to the desktop converter tools
--expanded-base-image <base-image> Path to the expanded base image
--makeappx-params <params> Additional parameters for Make-AppXPackage (example: --makeappx-params "/l","/d")
--signtool-params <params> Additional parameters for signtool.exe (example: --makeappx-params "/l","/d")
--create-config-params <params> Additional parameters for makepri.exe "createconfig" (example: --create-config-params "/l","/d")')
--create-pri-params <params> Additional parameters for makepri.exe "new" (example: --create-pri-params "/l","/d")')
--verbose <true|false> Enable debugging (similar to setting a DEBUG=electron-windows-store environment variable)
Vous pouvez appeler ce forfait directement. Toutes les options correspondent aux options CLI et sont également facultatives. Il existe une exception : vous pouvez fournir une fonction finalSay
, qui sera exécutée juste avant l'appel makeappx.exe
. Cela vous permet de modifier le dossier de sortie juste avant de le transformer en package.
const convertToWindowsStore = require ( 'electron-windows-store' )
convertToWindowsStore ( {
containerVirtualization : false ,
inputDirectory : 'C:\input\' ,
outputDirectory : 'C:\output\' ,
packageVersion : '1.0.0.0' ,
packageName : 'Ghost' ,
packageDisplayName : 'Ghost Desktop' ,
packageDescription : 'Ghost for Desktops' ,
packageExecutable : 'app/Ghost.exe' ,
assets : 'C:\assets\' ,
manifest : 'C:\AppXManifest.xml' ,
deploy : false ,
publisher : 'CN=developmentca' ,
windowsKit : 'C:\windowskit' ,
devCert : 'C:\devcert.pfx' ,
certPass : 'abcd' ,
desktopConverter : 'C:\desktop-converter-tools' ,
expandedBaseImage : 'C:\base-image.wim' ,
makeappxParams : [ '/l' ] ,
signtoolParams : [ '/p' ] ,
makePri : true ,
createConfigParams : [ '/a' ] ,
createPriParams : [ '/b' ] ,
protocol : "ghost-app" ,
finalSay : function ( ) {
return new Promise ( ( resolve , reject ) => resolve ( ) )
}
} )
Le Desktop App Converter est capable d'exécuter un programme d'installation et votre application lors de la conversion dans un conteneur Windows. Cela nécessite l'installation de Desktop App Converter et présente des exigences plus avancées.
appx
à l'aide d'un conteneur Windows, utilisez la méthode « Copie de fichiers » décrite ci-dessus.
Assurez-vous que votre ordinateur est capable d'exécuter des conteneurs : vous aurez besoin d'un processeur 64 bits (x64), d'une virtualisation assistée par matériel et d'une traduction d'adresses de deuxième niveau (SLAT). Vous aurez également besoin de Windows 10 Enterprise Edition.
Avant d'exécuter la CLI pour la première fois, vous devrez configurer le « Windows Desktop App Converter ». Cela prendra quelques minutes, mais ne vous inquiétez pas, vous ne devez le faire qu'une seule fois. Téléchargez et le Desktop App Converter à partir d'ici. Vous recevrez deux fichiers : DesktopAppConverter.zip
et BaseImage-14316.wim
.
DesktopAppConverter.zip
. À partir d'un PowerShell élevé (ouvert avec "Exécuter en tant qu'administrateur"., assurez-vous que la politique d'exécution de votre système nous permet d'exécuter tout ce que nous avions l'intention d'exécuter en appelant Set-ExecutionPolicy bypass
.BaseImage-14316.wim
), en appelant .DesktopAppConverter.ps1 -Setup -BaseImage .BaseImage-14316.wim
. Ensuite, exécutez electron-windows-store
avec l'option --container-virtualization
!
Une fois exécuté, l'outil se met au travail : il accepte votre application Electron comme entrée. Ensuite, il archive votre application sous app.zip
. À l'aide d'un programme d'installation et d'un conteneur Windows, l'outil crée un package AppX « étendu » - comprenant le manifeste d'application Windows ( AppXManifest.xml
) ainsi que le système de fichiers virtuel et le registre virtuel dans votre dossier de sortie.
Une fois que nous avons les fichiers AppX développés, l'outil utilise le Windows App Packager ( MakeAppx.exe
) pour créer un package AppX à fichier unique à partir de ces fichiers sur le disque. Enfin, l'outil peut être utilisé pour créer un certificat de confiance sur votre ordinateur pour signer le nouveau package AppX. Avec le package AppX signé, la CLI peut également installer automatiquement le package sur votre ordinateur.
La première fois que vous exécutez cet outil, il doit connaître certains paramètres. Il ne vous le demandera qu'une seule fois et stockera vos réponses dans votre dossier de profil dans un fichier .electron-windows-store
. Vous pouvez également fournir ces valeurs en tant que paramètre lors de l'exécution de la CLI.
{
"publisher" : " CN=developmentca " ,
"windowsKit" : " C: \ Program Files (x86) \ Windows Kits \ 10 \ bin \ x64 " ,
"devCert" : " C: \ Tools \ DesktopConverter \ Certs \ devcert.pfx " ,
"desktopConverter" : " C: \ Tools \ DesktopConverter " ,
"expandedBaseImage" : " C: \ ProgramData \ Microsoft \ Windows \ Images \ BaseImage-14316 \ "
}
Vous pouvez associer votre application Electron avec un petit assistant UWP invisible, permettant à votre application Electron d'appeler toutes les API WinRT. Découvrez un exemple ici.
Le package AppX compilé contient toujours un exécutable win32 et ne fonctionnera donc pas sur Xbox, HoloLens ou sur les téléphones.
electron-windows-store
utilise Semantic Release pour automatiser l'ensemble du processus de publication. Afin de fusionner un PR, veuillez vous assurer que votre PR suit les directives de validation afin que nos robots puissent comprendre votre modification. Ce référentiel utilise les règles conventional-changelog
par défaut.
Sous licence utilisant la licence MIT (MIT); Copyright (c) Felix Rieseberg et Microsoft Corporation. Pour plus d’informations, veuillez consulter LICENCE.