W3Cschool
恭喜您成為首批注冊(cè)用戶
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
在 Windows 10 中,一些不錯(cuò)的舊 win32 程序迎來(lái)了一個(gè)新朋友:通用 Windows 平臺(tái)。 新的 ?.appx
? 格式不僅啟用了許多新的強(qiáng)大的 API,如 Cortana 或推送通知,而且通過 Windows 應(yīng)用商店,也同時(shí)簡(jiǎn)化了安裝和更新。
Microsoft 開發(fā)了一個(gè)工具,將 Electron 應(yīng)用程序編譯為 .appx
軟件包,使開發(fā)人員能夠使用新應(yīng)用程序模型中的一些好東西。 本指南解釋了如何使用它 - 以及 Electron AppX 包的功能和限制。
Windows 10 的 "周年更新" 能夠運(yùn)行 win32 .exe
程序并且它們的虛擬化文件系統(tǒng)和注冊(cè)表跟隨一起啟動(dòng)。 兩者都是通過在 Windows 容器中運(yùn)行應(yīng)用程序和安裝器編譯后創(chuàng)建的,允許 Windows 在安裝過程中正確識(shí)別操作系統(tǒng)進(jìn)行了哪些修改。 將可執(zhí)行文件和虛擬文件系統(tǒng)與虛擬注冊(cè)表配對(duì), 允許 Windows 啟用一鍵安裝和卸載。
此外,exe 在 appx 模型內(nèi)啟動(dòng) - 這意味著它可以使用通用 Windows 平臺(tái)可用的許多 API。 為了獲得更多的功能,Electron 應(yīng)用程序可以與一個(gè)看不見的 UWP 后臺(tái)任務(wù)配合使用,它與 exe
一起啟動(dòng),作為后臺(tái)運(yùn)行任務(wù)的接收器,接收推送通知或與其他 UWP 應(yīng)用程序通信 。
要編譯任何現(xiàn)有的 Electron 應(yīng)用程序,請(qǐng)確保滿足以下要求:
node -v
來(lái)確認(rèn))然后, 安裝 electron-windows-store
CLI:
npm install -g electron-windows-store
打包應(yīng)用程序使用 electron-packager (或類似工具). 確保在最終的應(yīng)用程序中刪除不需要的 node_modules
, 因?yàn)檫@些你不需要模塊只會(huì)額外增加你的應(yīng)用程序的大小.
結(jié)構(gòu)輸出應(yīng)該看起來(lái)大致像這樣:
├── 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
從提權(quán)的 PowerShell(用管理員身份運(yùn)行它) 中, 以所需的參數(shù)運(yùn)行 electron-windows-store
,傳遞輸入和輸出目錄,應(yīng)用程序的名稱和版本,以及確認(rèn) node_modules
應(yīng)該是扁平的。
electron-windows-store `
--input-directory C:\myelectronapp `
--output-directory C:\output\myelectronapp `
--package-version 1.0.0.0 `
--package-name myelectronapp
一旦執(zhí)行,工具就開始工作:它接受您的 Electron 應(yīng)用程序作為輸入,展平 node_modules
。 然后,它將應(yīng)用程序歸檔為 app.zip
。 使用安裝程序和 Windows 容器,該工具創(chuàng)建一個(gè)“擴(kuò)展的” AppX 包 - 包括 Windows 應(yīng)用程序清單 (AppXManifest.xml
)以及虛擬文件系統(tǒng)和輸出文件夾中的虛擬注冊(cè)表。
當(dāng)創(chuàng)建擴(kuò)展的 AppX 文件后,該工具使用 Windows App Packager(MakeAppx.exe
)將磁盤上的這些文件創(chuàng)建為單文件 AppX 包。 最后,該工具可用于在計(jì)算機(jī)上創(chuàng)建可信證書,以簽署新的 AppX 包。 使用簽名的 AppX 軟件包,CLI也可以自動(dòng)在您的計(jì)算機(jī)上安裝軟件包。
為了運(yùn)行您的軟件包,您的用戶將需要將 Windows 10 安裝“周年紀(jì)念更新” - 有關(guān)如何更新Windows的詳細(xì)信息可以在這里找到
與傳統(tǒng)的UWP應(yīng)用程序不同,打包應(yīng)用程序目前需要進(jìn)行手動(dòng)驗(yàn)證過程,您可以在這里申請(qǐng). 在此期間,所有用戶都能夠通過雙擊安裝包來(lái)安裝您的程序,所以如果您只是尋找一個(gè)更簡(jiǎn)單的安裝方法,可能不需要提交到商店。 在受管理的環(huán)境中(通常是企業(yè)), Add-AppxPackage
PowerShell Cmdlet 可用于以自動(dòng)方式安裝它。
另一個(gè)重要的限制是編譯的 AppX 包仍然包含一個(gè) win32 可執(zhí)行文件,因此不會(huì)在 Xbox,HoloLens 或 Phones 中運(yùn)行。
您可以將 Electron 應(yīng)用程序與不可見的 UWP 后臺(tái)任務(wù)配對(duì),以充分利用 Windows 10 功能,如推送通知,Cortana 集成或活動(dòng)磁貼。
如何使用 Electron 應(yīng)用程序通過后臺(tái)任務(wù)發(fā)送 Toast 通知和活動(dòng)磁貼, 請(qǐng)查看微軟提供的案例.
要生成 AppX 包,electron-windows-store
CLI 使用的模板應(yīng)該適用于大多數(shù) Electron 應(yīng)用程序。 但是,如果您使用自定義安裝程序,或者您遇到生成的包的任何問題,您可以嘗試使用 Windows 容器編譯創(chuàng)建包 - 在該模式下,CLI 將在空 Windows 容器中安裝和運(yùn)行應(yīng)用程序,以確定應(yīng)用程序正在對(duì)操作系統(tǒng)進(jìn)行哪些修改。
在第一次運(yùn)行 CLI 之前,您必須安裝 “Windows Desktop App Converter” 。 這將需要幾分鐘,但不要擔(dān)心 - 你只需要這樣做一次。 從這里下載 Desktop App Converter 您將得到兩個(gè)文件: DesktopAppConverter.zip
和 BaseImage-14316.wim
.
DesktopAppConverter.zip
. 打開提權(quán)的 PowerShell (用"以管理員權(quán)限運(yùn)行"打開, 確保您的系統(tǒng)執(zhí)行策略允許我們通過調(diào)用 Set-ExecutionPolicy bypass
來(lái)運(yùn)行我們想要運(yùn)行的一切)..\DesktopAppConverter.ps1 -Setup -BaseImage .\BaseImage-14316.wim
, 運(yùn)行 Desktop App Converter 安裝,并傳遞 Windows 基本映像的位置 (下載的 BaseImage-14316.wim
).
當(dāng)安裝成功后,您可以繼續(xù)編譯你的 Electron 應(yīng)用程序。
Copyright©2021 w3cschool編程獅|閩ICP備15016281號(hào)-3|閩公網(wǎng)安備35020302033924號(hào)
違法和不良信息舉報(bào)電話:173-0602-2364|舉報(bào)郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號(hào)
聯(lián)系方式:
更多建議: