通过


将 CLI 可执行文件打包为 MSIX

本指南将指导你将现有的命令行可执行文件打包为 MSIX 包,以便通过 Windows Package Manager(winget)、Microsoft 应用商店或直接分发进行分发。

先决条件

  • 要打包的现有 CLI 可执行文件 (.exe
  • Windows 10版本 1809 或更高版本

步骤

1.组织你的命令行界面程序

将 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 节以匹配 CLI 应用程序。

5.生成开发证书(可选)

对于本地测试和Microsoft应用商店外部的分发:

cd ~
winapp cert generate
winapp cert install

重要

将开发证书保留在包含 CLI 可执行文件的文件夹之外,以避免意外将其包含在包中。

6. 将 CLI 打包

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

这会在当前目录中创建一个 .msix 文件。

小窍门

  • 微软商店为你签署MSIX,无需在提交之前签署。
  • 对于支持的每个体系结构,可能需要单独的 MSIX 包(x64,Arm64)。