將 CLI 執行檔打包為 MSIX

本指南將引導你了解如何將現有的命令列執行檔打包成 MSIX 套件,透過 Windows Package Manager(winget)、Microsoft Store 或直接發行。

先決條件

  • 一個你想要打包的現有 CLI 執行檔 (.exe
  • Windows 10 版本 1809 或更新版本

Steps

1. 組織您的 CLI 應用程式

將你的 CLI 執行檔和所有相依性放在專用資料夾裡:

mkdir MyCliPackage
cd MyCliPackage
# Copy your CLI executable and dependencies here

2. 安裝 winapp CLI

winget install microsoft.winappcli --source winget

3. 產生 appxmanifest.xml

winapp manifest generate --executable .\yourcli.exe

這會建立一個包含預設值的 appxmanifest.xml 檔案,這些值是從你的執行檔中填入的。

4. 設定清單

編輯產生 appxmanifest.xml 的檔案以新增執行別名,將應用程式隱藏於開始選單中,並更新應用程式細節。

4.1 新增所需命名空間

uap5 命名空間添加到 Package 元素中。

<Package
  xmlns="http://schemas.microsoft.com/appx/manifest/foundation/windows10"
  ...
  xmlns:uap="http://schemas.microsoft.com/appx/manifest/uap/windows10"
  xmlns:uap5="http://schemas.microsoft.com/appx/manifest/uap/windows10/5"
  xmlns:rescap="http://schemas.microsoft.com/appx/manifest/foundation/windows10/restrictedcapabilities"
  IgnorableNamespaces="uap uap5 rescap">

4.2 從開始選單隱藏

在元素中 <uap:VisualElements> ,加入 AppListEntry="none"

<uap:VisualElements
    DisplayName="YourApp"
    Description="My Application"
    BackgroundColor="transparent"
    Square150x150Logo="Assets\Square150x150Logo.png"
    Square44x44Logo="Assets\Square44x44Logo.png"
    AppListEntry="none">
</uap:VisualElements>

4.3 新增執行別名

在元素 <Application> 中加入擴展:

<Extensions>
  <uap5:Extension Category="windows.appExecutionAlias">
    <uap5:AppExecutionAlias>
      <uap5:ExecutionAlias Alias="yourcli.exe" />
    </uap5:AppExecutionAlias>
  </uap5:Extension>
</Extensions>

請替換 yourcli.exe 成你 CLI 所需的指令名稱。

4.4 更新應用程式元資料

更新 IdentityPropertiesVisualElements section 以符合你的 CLI 應用程式。

5. 產生發展證書(可選)

針對 Microsoft Store 以外的本地測試與發佈:

cd ~
winapp cert generate
winapp cert install

這很重要

請將開發憑證放在包含 CLI 執行檔的資料夾外,避免不小心包含在套件中。

6. 打包你的 CLI

winapp pack .\MyCliPackage --cert path\to\devcert.pfx

這會在目前目錄中建立一個 .msix 檔案。

小提示

  • Microsoft Store 會幫你簽署 MSIX,提交前不需要先簽。
  • 你可能需要為每個支援的架構(x64、Arm64)分別準備 MSIX 套件。