本指南將教你如何建立一個 MSIX 套件,用來分發 Windows API 的 Electron 應用程式。
先決條件
在包裝前,請確保你已經:
- 完成 開發環境設定
- [可選]建立並測試你的外掛(例如 Phi Silica 外掛 或 WinML 外掛)
- 驗證你的應用程式能否正確執行
npm start
準備包裝
設定 Electron Forge 排除最終版本中的臨時檔案。 在你的 ignore 中packagerConfig加入一個forge.config.js陣列:
module.exports = {
packagerConfig: {
asar: true,
ignore: [
/^\/\.winapp($|\/)/, // SDK packages and headers
/^\/winapp\.yaml$/, // SDK config
/\.pfx$/, // Certificate files
/\.pdb$/, // Debug symbols
/\/obj($|\/)/, // C# build artifacts
/\/bin($|\/)/, // C# build artifacts
/\.msix$/ // MSIX packages
]
},
// ... rest of your config
};
Important
請確認你的 Package.appxmanifest 是否與你的包裝應用程式結構一致。
- 屬性
Executable應該指向你打包輸出中正確的 .exe 檔案
產生開發證書
在建立簽署的 MSIX 套件前,先產生開發憑證:
npx winapp cert generate
這會在你的專案根建立一個 devcert.pfx 檔案,用來簽署 MSIX 套件。
包裝選項
你有兩種方式可以為 Electron 應用程式建立 MSIX 套件:
- 選項一:直接使用 Winapp CLI - 更易設定,適用於任何封包器
- 選項二:使用 Electron Forge MSIX Maker - 更整合於 Forge 工作流程
選擇最適合你工作流程的選項。
選項一:直接使用 Winapp CLI (建議彈性)
這種方法讓你對包裝流程有更多掌控,適用於任何 Electron 包裝機。
打造你的 Electron 應用程式
要將您的 Electron 應用程式與 MSIX 打包,首先需要建立生產版的佈局。 在 Electron Forge 中,我們可以使用套件指令:
# Package with Electron Forge (or your preferred packager)
npx electron-forge package
這樣會在資料夾 ./out/ 中建立你的應用程式的正式版本。 資料夾的確切名稱會依據你的應用程式名稱和架構(例如 my-windows-app-win32-x64)。
建立 MSIX 套件
現在用 winapp CLI 從你打包的應用程式建立並簽署 MSIX 套件:
npx winapp pack .\out\<your-app-folder> --output .\out --cert .\devcert.pfx --manifest .\Package.appxmanifest
將 <your-app-folder> 替換為由 Electron Forge 建立的實際資料夾名稱(例如 my-windows-app-win32-x64 代表 x64,或 my-windows-app-win32-arm64 代表 ARM64)。
這個 --manifest 選項是可選的。 如果沒有提供,它會在被打包的資料夾或目前目錄中尋找 Package.appxmanifest。
這個 --cert 選項也是可選的。 若未提供,msix 將不會被簽署。
這個 --output 選項也是可選的。 若未提供,將使用目前的目錄。
MSIX 套件將建立為 ./out/<your-app-name>.msix。
小提示
你可以在腳本中加入以下指令 package.json 以增加方便:
{
"scripts": {
"package-msix": "npm run build-csAddon && npx electron-forge package && npx winapp pack ./out/my-windows-app-win32-x64 --output ./out --cert ./devcert.pfx --manifest Package.appxmanifest"
}
}
只要確保更新路徑,讓它和你實際的輸出資料夾名稱相符就好。
選項二:使用 Electron Forge MSIX Maker(針對 Forge 用戶)
如果你已經在用 Electron Forge,可以直接用 @electron-forge/maker-msix maker 將 MSIX 封裝整合到 Forge 的工作流程中。
安裝 MSIX Maker
npm install --save-dev @electron-forge/maker-msix
設定 forge.config.js
將 MSIX 製作器加入你的 forge.config.js:
module.exports = {
// ... other config
makers: [
{
name: '@electron-forge/maker-msix',
config: {
appManifest: '.\\Package.appxmanifest',
windowsSignOptions: {
certificateFile: '.\\devcert.pfx',
certificatePassword: 'password'
}
}
}
],
// ... rest of your config
};
更新 Package.appxmanifest
Electron Forge 的 MSIX 製作工具採用與 winapp CLI 不同的資料夾配置。 它會把你的應用程式放在 app\ MSIX 的資料夾裡。 這個資料夾在包裝過程中會自動建立——你不需要自己建立。 將 Package.appxmanifest 中的 Executable 路徑更新為指向 app 資料夾。
<Applications>
<Application Id="myApp"
Executable="app\my-app.exe"
EntryPoint="Windows.FullTrustApplication">
<!-- ... rest of your application config -->
</Application>
</Applications>
用你實際的執行檔名稱替換 my-app.exe 。 這是根據你productName中的name欄位(或package.json)來決定的。
Note
Forge MSIX 製造商會根據你 MinVersion 中的 Package.appxmanifest 尋找Windows SDK 工具。 如果遇到找不到 WindowsKit 的錯誤,請確保你電腦上安裝了指定的 MinVersion SDK 版本,或更新 MinVersion 到與已安裝的 SDK 版本相符。
建立 MSIX 套件
現在你可以建立 MSIX 套件了。 使用 --targets 標誌來只運行 MSIX 製作程式(如果沒有,Forge 將會運行所有已配置的製作程式):
npx electron-forge make --targets @electron-forge/maker-msix
MSIX 套件會在資料夾 ./out/make/msix/<arch>/ 中建立(例如, ./out/make/msix/arm64/ 或 ./out/make/msix/x64/)。
小提示
此方法與 Electron Forge 工作流程更為整合,能自動在一階段完成封裝與 MSIX 建立。
安裝與測試 MSIX
首先,安裝開發憑證(一次性設定):
# Run as Administrator:
npx winapp cert install .\devcert.pfx
現在安裝 MSIX 套件。 雙擊 msix 檔案或執行以下指令:
# Option 1 output:
Add-AppxPackage .\out\<your-app-name>.msix
# Option 2 output:
Add-AppxPackage .\out\make\msix\<arch>\<your-app-name>.msix
用你建造輸出的實際數值替換 <your-app-name> 和 <arch> 。
你的應用程式會出現在開始選單中! 啟動它並測試你的 Windows API 功能。
發行選項
一旦你有了可用的 MSIX 套件,你就有幾種方式來分發你的應用程式:
直接下載
在你的網站上架設 MSIX 套件,方便直接下載。 請確保你用來自受信任憑證授權中心(CA)的程式碼簽署憑證,讓使用者安裝時不會有安全警告。
Microsoft Store
將您的應用程式提交至 Microsoft Store,以獲得最廣泛的發行與自動更新。 您需要:
- 建立 Microsoft Partner Center 帳號
- 保留您的應用程式名稱
- 更新
Package.appxmanifest為你的商店識別。 不需要簽名,商店發佈流程會自動簽署。 - 提交認證申請
了解更多: 將您的應用程式發佈至 Microsoft Store
企業發行
直接透過以下方式分發給企業客戶:
- 公司入口網站 - 適用於使用 Intune 的組織
- 直接下載 - 在你的網站上架設 MSIX
- 側載 - 透過 PowerShell 或 App 安裝程式安裝
了解更多: 在商店外發佈應用程式
應用程式安裝程式
建立 .appinstaller 自動更新檔案:
<?xml version="1.0" encoding="utf-8"?>
<AppInstaller
Uri="https://your-domain.com/packages/myapp.appinstaller"
Version="1.0.0.0"
xmlns="http://schemas.microsoft.com/appx/appinstaller/2017/2">
<MainPackage
Name="YourAppName"
Version="1.0.0.0"
Publisher="CN=YourPublisher"
Uri="https://your-domain.com/packages/myapp.msix"
ProcessorArchitecture="x64" />
<UpdateSettings>
<OnLaunch HoursBetweenUpdateChecks="24" />
</UpdateSettings>
</AppInstaller>
了解更多: 應用程式安裝程式檔案概覽
後續步驟
祝賀! 你已經成功打包了支援 Windows 的 Electron 應用程式並進行分發! 🎉
其他資源
- winapp CLI 文檔 - 完整的 CLI 參考資料
- Sample Electron 應用程式 - 完整工作範例
- MSIX 封裝文件 - 了解更多關於 MSIX 的資訊
- Windows 應用程式 認證套件 - 在提交商店前測試你的應用程式
返回概覽
- 入門概述 - 返回主指南
- 建立開發環境 - 回顧設定步驟
- 建立 Phi Silica 外掛 - 檢討外掛製作
- 建立 WinML 外掛 - 學習 WinML 整合
取得說明
- 發現錯誤了嗎?提出問題
祝你分發愉快! 🚀