Windows商店指南

2018-03-21 19:06 更新

在 Windows 8 中, 一些不錯的舊 win32 程序迎來了一個新朋友: 通用Windows平臺(UWP)。 新的 .appx 格式不僅啟用了許多新的強大的 API,如 Cortana 或推送通知,而且通過Windows 應(yīng)用商店,也同時簡化了安裝和更新。

Microsoft 開發(fā)了一個工具,將 Electron 應(yīng)用程序編譯為 .appx 軟件包,使開發(fā)人員能夠使用新應(yīng)用程序模型中的一些好東西。 本指南解釋了如何使用它 - 以及 Electron AppX 包的功能和限制。

背景和要求

Windows 10 的 "周年更新" 能夠運行 win32 .exe 程序并且它們的虛擬化文件系統(tǒng)和注冊表跟隨一起啟動。 兩者都是通過在 Windows 容器中運行應(yīng)用程序和安裝器編譯后創(chuàng)建的,允許 Windows 在安裝過程中正確識別操作系統(tǒng)進行了哪些修改。 將可執(zhí)行文件和虛擬文件系統(tǒng)與虛擬注冊表配對, 允許 Windows 啟用一鍵安裝和卸載。

此外,exe 在 appx 模型內(nèi)啟動 - 這意味著它可以使用通用 Windows 平臺可用的許多 API。 為了獲得更多的功能,Electron 應(yīng)用程序可以與一個看不見的 UWP 后臺任務(wù)配合使用,它與 exe 一起啟動,作為后臺運行任務(wù)的接收器,接收推送通知或與其他 UWP 應(yīng)用程序通信 。

要編譯任何現(xiàn)有的 Electron 應(yīng)用程序,請確保滿足以下要求:

  • Windows 10及周年更新 (2016年8月2日發(fā)布的)
  • Windows 10 SDK, 這里下載
  • 最新的 Node 4 (運行 node -v 來確認(rèn))

然后, 安裝 electron-windows-store CLI:

npm install -g electron-windows-store

步驟 1: 打包你的 Electron 應(yīng)用程序

打包應(yīng)用程序使用 electron-packager (或類似工具). 確保在最終的應(yīng)用程序中刪除不需要的 node_modules, 因為這些你不需要模塊只會額外增加你的應(yīng)用程序的大小.

結(jié)構(gòu)輸出應(yīng)該看起來大致像這樣:

├── 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
│   ├── [...]
├── natives_blob.bin
├── node.dll
├── resources
│   ├── app
│   └── atom.asar
├── snapshot_blob.bin
├── squirrel.exe
├── ui_resources_200_percent.pak
└── xinput1_3.dll

步驟 2: 運行 electron-windows-store

從提權(quán)的 PowerShell(用管理員身份運行它)中,以所需的參數(shù)運行 electron-windows-store,傳遞輸入和輸出目錄,應(yīng)用程序的名稱和版本,以及確認(rèn)node_modules應(yīng)該是扁平的。

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

一旦執(zhí)行,工具就開始工作:它接受您的 Electron 應(yīng)用程序作為輸入,展平 node_modules。 然后,它將應(yīng)用程序歸檔為 app.zip。 使用安裝程序和 Windows 容器,該工具創(chuàng)建一個“擴展的” AppX 包 - 包括 Windows 應(yīng)用程序清單 (AppXManifest.xml)以及虛擬文件系統(tǒng)和輸出文件夾中的虛擬注冊表。

當(dāng)創(chuàng)建擴展的 AppX 文件后,該工具使用 Windows App Packager(MakeAppx.exe)將磁盤上的這些文件創(chuàng)建為單文件 AppX 包。 最后,該工具可用于在計算機上創(chuàng)建可信證書,以簽署新的 AppX 包。 使用簽名的 AppX 軟件包,CLI也可以自動在您的計算機上安裝軟件包。

步驟 3: 使用 AppX 包

為了運行您的軟件包,您的用戶將需要將 Windows 10 安裝“周年紀(jì)念更新” - 有關(guān)如何更新Windows的詳細(xì)信息可以在這里找到

與傳統(tǒng)的UWP應(yīng)用程序不同,打包應(yīng)用程序目前需要進行手動驗證過程,您可以在這里申請. 在此期間,所有用戶都能夠通過雙擊安裝包來安裝您的程序,所以如果您只是尋找一個更簡單的安裝方法,可能不需要提交到商店。

在受管理的環(huán)境中(通常是企業(yè)), Add-AppxPackage PowerShell Cmdlet 可用于以自動方式安裝它。

另一個重要的限制是編譯的 AppX 包仍然包含一個 win32 可執(zhí)行文件,因此不會在 Xbox,HoloLens 或 Phones 中運行。

可選: 使用 BackgroundTask 添加 UWP 功能

您可以將 Electron 應(yīng)用程序與不可見的 UWP 后臺任務(wù)配對,以充分利用 Windows 10 功能,如推送通知,Cortana 集成或活動磁貼。

如何使用 Electron 應(yīng)用程序通過后臺任務(wù)發(fā)送 Toast 通知和活動磁貼,請查看微軟提供的案例.

可選: 使用容器虛擬化進行轉(zhuǎn)換

要生成 AppX 包,electron-windows-store CLI 使用的模板應(yīng)該適用于大多數(shù) Electron 應(yīng)用程序。 但是,如果您使用自定義安裝程序,或者您遇到生成的包的任何問題,您可以嘗試使用 Windows 容器編譯創(chuàng)建包 - 在該模式下,CLI 將在空 Windows 容器中安裝和運行應(yīng)用程序,以確定應(yīng)用程序正在對操作系統(tǒng)進行哪些修改。

在運行 CLI 之前,您必須設(shè)置 “Windows Desktop App Converter” 。 這將需要幾分鐘,但不要擔(dān)心 - 你只需要這樣做一次。 從這里下載 Desktop App Converter

您將得到兩個文件: DesktopAppConverter.zip 和 BaseImage-14316.wim.

  1. 解壓 DesktopAppConverter.zip. 打開提權(quán)的 PowerShell (用"以管理員權(quán)限運行"打開, 確保您的系統(tǒng)執(zhí)行策略允許我們通過調(diào)用 Set-ExecutionPolicy bypass 來運行我們想要運行的一切).
  2. 然后, 通過調(diào)用 .\DesktopAppConverter.ps1 -Setup -BaseImage .\BaseImage-14316.wim, 運行 Desktop App Converter 安裝,并傳遞 Windows 基本映像的位置 (下載的 BaseImage-14316.wim).
  3. 如果運行以上命令提示您重新啟動,請重新啟動計算機,并在成功重新啟動后再次運行上述命令。

當(dāng)安裝成功后,您可以繼續(xù)編譯你的 Electron 應(yīng)用程序。

以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號