Electron-Windows-Store: uma CLI que pega a saída empacotada do seu aplicativo Electron e a converte em um pacote AppX. Isso permite que você envie seu aplicativo Electron para a Windows Store?. Você também pode distribuir seu aplicativo como .appx
sem usar a Windows Store, permitindo que os usuários cliquem duas vezes em seu .appx
para instalá-lo automaticamente.
Para instalar esta ferramenta de linha de comando, obtenha-a diretamente do npm:
npm install -g electron-windows-store
Em seguida, configure seu PowerShell:
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned
Para transformar um aplicativo Electron em um pacote AppX, execute:
electron-windows-store --input-directory C:myelectronapp --output-directory C:outputmyelectronapp --package-version 1.0.0.0 --package-name myelectronapp
Esta ferramenta oferece suporte a dois métodos para criar pacotes AppX: usando operações manuais de cópia de arquivos ou usando Windows Containers. A primeira opção requer apenas o SDK do Windows 10, enquanto a segunda opção também requer o Desktop App Converter.
Antes de executar a CLI Electron-Windows-Store, vamos ter certeza de que temos todos os pré-requisitos em vigor. Você precisará de:
node -v
) Empacote o aplicativo usando o electron-packager (ou algo semelhante). Certifique-se de remover node_modules desnecessários em seu aplicativo final.
A saída deve ser mais ou menos assim:
├── Ghost.exe
├── LICENSE
├── content_resources_200_percent.pak
├── node.dll
├── pdf.dll
├── resources
│ ├── app
│ └── atom.asar
├── snapshot_blob.bin
├── [... and more files]
A partir de um PowerShell elevado (execute-o "como Administrador") , execute electron-windows-store
com os parâmetros necessários, passando os diretórios de entrada e saída, o nome e a versão do aplicativo. Se você não passar esses parâmetros, simplesmente solicitaremos eles.
electron-windows-store --input-directory C:myelectronapp --output-directory C:outputmyelectronapp --package-version 1.0.0.0 --package-name myelectronapp
Estas são todas opções para a 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)
Você pode ligar para este pacote diretamente. Todas as opções correspondem às opções CLI e são igualmente opcionais. Há uma exceção: você pode fornecer uma função finalSay
, que será executada logo antes de makeappx.exe
ser chamado. Isso permite que você modifique a pasta de saída antes de transformá-la em um pacote.
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 ( ) )
}
} )
O Desktop App Converter é capaz de executar um instalador e seu aplicativo durante a conversão dentro de um contêiner do Windows. Isso requer a instalação do Desktop App Converter e possui requisitos mais avançados.
appx
seja criado usando um contêiner do Windows, use o método "Cópia de arquivo" descrito acima.
Certifique-se de que seu computador seja capaz de executar contêineres: você precisará de um processador de 64 bits (x64), virtualização assistida por hardware e tradução de endereços de segundo nível (SLAT). Você também precisará do Windows 10 Enterprise Edition.
Antes de executar a CLI pela primeira vez, você terá que configurar o "Windows Desktop App Converter". Isso levará alguns minutos, mas não se preocupe: você só precisa fazer isso uma vez. Baixe e o Desktop App Converter aqui. Você receberá dois arquivos: DesktopAppConverter.zip
e BaseImage-14316.wim
.
DesktopAppConverter.zip
. A partir de um PowerShell elevado (aberto com "executar como administrador"., certifique-se de que a política de execução do seu sistema nos permite executar tudo o que pretendemos executar chamando Set-ExecutionPolicy bypass
.BaseImage-14316.wim
), chamando .DesktopAppConverter.ps1 -Setup -BaseImage .BaseImage-14316.wim
. Em seguida, execute electron-windows-store
com o sinalizador --container-virtualization
!
Depois de executada, a ferramenta começa a funcionar: ela aceita seu aplicativo Electron como entrada. Em seguida, ele arquiva seu aplicativo como app.zip
. Usando um instalador e um contêiner do Windows, a ferramenta cria um pacote AppX "expandido" - incluindo o manifesto do aplicativo do Windows ( AppXManifest.xml
), bem como o sistema de arquivos virtual e o registro virtual dentro de sua pasta de saída.
Assim que tivermos os arquivos AppX expandidos, a ferramenta usará o Windows App Packager ( MakeAppx.exe
) para criar um pacote AppX de arquivo único a partir desses arquivos no disco. Finalmente, a ferramenta pode ser usada para criar um certificado confiável em seu computador para assinar o novo pacote AppX. Com o pacote AppX assinado, a CLI também pode instalar automaticamente o pacote em sua máquina.
Na primeira vez que você executa esta ferramenta, ela precisa conhecer algumas configurações. Ele perguntará apenas uma vez e armazenará suas respostas na pasta de seu perfil em um arquivo .electron-windows-store
. Você também pode fornecer esses valores como parâmetro ao executar a 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 \ "
}
Você pode emparelhar seu aplicativo Electron com um pequeno recurso UWP invisível, permitindo que seu aplicativo Electron chame todas as APIs WinRT. Confira um exemplo aqui.
O pacote AppX compilado ainda contém um executável win32 – e, portanto, não será executado no Xbox, HoloLens ou telefones.
electron-windows-store
usa Liberação Semântica para automatizar todo o processo de liberação. Para mesclar um PR, certifique-se de que seu PR siga as diretrizes de commit para que nossos robôs possam entender sua alteração. Este repositório usa as regras padrão conventional-changelog
.
Licenciado usando a Licença MIT (MIT); Direitos autorais (c) Felix Rieseberg e Microsoft Corporation. Para obter mais informações, consulte LICENÇA.