Electron-Windows-Store: Eine CLI, die die gepackte Ausgabe Ihrer Electron-App übernimmt und sie dann in ein AppX-Paket konvertiert. Dadurch können Sie Ihre Electron-App an den Windows Store senden. Sie können Ihre App auch als .appx
verteilen, ohne den Windows Store zu verwenden, sodass Benutzer einfach auf Ihre .appx
doppelklicken müssen, um sie automatisch zu installieren.
Um dieses Befehlszeilentool zu installieren, laden Sie es direkt von npm herunter:
npm install -g electron-windows-store
Konfigurieren Sie dann Ihre PowerShell:
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned
Führen Sie Folgendes aus, um eine Electron-App in ein AppX-Paket umzuwandeln:
electron-windows-store --input-directory C:myelectronapp --output-directory C:outputmyelectronapp --package-version 1.0.0.0 --package-name myelectronapp
Dieses Tool unterstützt zwei Methoden zum Erstellen von AppX-Paketen: entweder die Verwendung manueller Dateikopiervorgänge oder die Verwendung von Windows-Containern. Für die erste Option ist nur das Windows 10 SDK erforderlich, während für die zweite Option auch der Desktop App Converter erforderlich ist.
Bevor wir die Electron-Windows-Store-CLI ausführen, stellen wir sicher, dass alle Voraussetzungen erfüllt sind. Sie benötigen:
node -v
aus) Verpacken Sie die Anwendung mit Electron-Packer (oder etwas Ähnlichem). Stellen Sie sicher, dass Sie node_modules entfernen, die Sie in Ihrer endgültigen Anwendung nicht benötigen.
Die Ausgabe sollte ungefähr so aussehen:
├── Ghost.exe
├── LICENSE
├── content_resources_200_percent.pak
├── node.dll
├── pdf.dll
├── resources
│ ├── app
│ └── atom.asar
├── snapshot_blob.bin
├── [... and more files]
Führen Sie in einer PowerShell mit erhöhten Rechten (führen Sie sie „als Administrator“ aus) electron-windows-store
mit den erforderlichen Parametern aus und übergeben Sie dabei sowohl das Eingabe- als auch das Ausgabeverzeichnis sowie den Namen und die Version der App. Wenn Sie diese Parameter nicht übergeben, fragen wir Sie einfach danach.
electron-windows-store --input-directory C:myelectronapp --output-directory C:outputmyelectronapp --package-version 1.0.0.0 --package-name myelectronapp
Dies sind alles Optionen für die 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)
Sie können dieses Paket direkt aufrufen. Alle Optionen entsprechen den CLI-Optionen und sind gleichermaßen optional. Es gibt eine Ausnahme: Sie können eine finalSay
-Funktion bereitstellen, die unmittelbar vor dem Aufruf von makeappx.exe
ausgeführt wird. Dadurch können Sie den Ausgabeordner ändern, bevor wir ihn in ein Paket umwandeln.
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 ( ) )
}
} )
Der Desktop App Converter ist in der Lage, ein Installationsprogramm und Ihre App während der Konvertierung in einem Windows-Container auszuführen. Dies erfordert die Installation des Desktop App Converter und stellt höhere Anforderungen.
appx
mit einem Windows-Container erstellt werden muss, verwenden Sie die oben beschriebene Methode „Datei kopieren“.
Stellen Sie sicher, dass Ihr Computer in der Lage ist, Container auszuführen: Sie benötigen einen 64-Bit-Prozessor (x64), hardwaregestützte Virtualisierung und Second Level Address Translation (SLAT). Sie benötigen außerdem Windows 10 Enterprise Edition.
Bevor Sie die CLI zum ersten Mal ausführen, müssen Sie den „Windows Desktop App Converter“ einrichten. Dies wird einige Minuten dauern, aber keine Sorge – Sie müssen dies nur einmal tun. Laden Sie hier den Desktop App Converter herunter. Sie erhalten zwei Dateien: DesktopAppConverter.zip
und BaseImage-14316.wim
.
DesktopAppConverter.zip
. Stellen Sie in einer PowerShell mit erhöhten Rechten (geöffnet mit „Als Administrator ausführen“) sicher, dass Ihre Systemausführungsrichtlinie es uns erlaubt, alles auszuführen, was wir ausführen wollten, indem Sie Set-ExecutionPolicy bypass
aufrufen.BaseImage-14316.wim
), indem Sie .DesktopAppConverter.ps1 -Setup -BaseImage .BaseImage-14316.wim
aufrufen. Führen Sie dann electron-windows-store
mit der Flagge --container-virtualization
aus!
Nach der Ausführung macht sich das Tool an die Arbeit: Es akzeptiert Ihre Electron-App als Eingabe. Anschließend wird Ihre Anwendung als app.zip
archiviert. Mithilfe eines Installationsprogramms und eines Windows-Containers erstellt das Tool ein „erweitertes“ AppX-Paket – einschließlich des Windows-Anwendungsmanifests ( AppXManifest.xml
) sowie des virtuellen Dateisystems und der virtuellen Registrierung in Ihrem Ausgabeordner.
Sobald wir die erweiterten AppX-Dateien haben, verwendet das Tool den Windows App Packager ( MakeAppx.exe
), um aus diesen Dateien auf der Festplatte ein einzelnes AppX-Paket zu erstellen. Schließlich kann das Tool verwendet werden, um ein vertrauenswürdiges Zertifikat auf Ihrem Computer zu erstellen, um das neue AppX-Paket zu signieren. Mit dem signierten AppX-Paket kann die CLI das Paket auch automatisch auf Ihrem Computer installieren.
Wenn Sie dieses Tool zum ersten Mal ausführen, müssen einige Einstellungen bekannt sein. Sie werden nur einmal gefragt und Ihre Antworten werden in einer .electron-windows-store
Datei in Ihrem Profilordner gespeichert. Sie können diese Werte auch als Parameter angeben, wenn Sie die CLI ausführen.
{
"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 \ "
}
Sie können Ihre Electron-App mit einem kleinen unsichtbaren UWP-Side-Kick koppeln, sodass Ihre Electron-App alle WinRT-APIs aufrufen kann. Schauen Sie sich hier ein Beispiel an.
Das kompilierte AppX-Paket enthält weiterhin eine ausführbare Win32-Datei – und kann daher nicht auf Xbox, HoloLens oder Telefonen ausgeführt werden.
electron-windows-store
nutzt Semantic Release, um den gesamten Release-Prozess zu automatisieren. Um einen PR zusammenzuführen, stellen Sie bitte sicher, dass Ihr PR den Commit-Richtlinien folgt, damit unsere Roboter Ihre Änderung verstehen können. Dieses Repository verwendet die standardmäßigen conventional-changelog
Regeln.
Lizenziert unter Verwendung der MIT-Lizenz (MIT); Urheberrecht (c) Felix Rieseberg und Microsoft Corporation. Weitere Informationen finden Sie unter LIZENZ.