本指南将指导你将现有的命令行可执行文件打包为 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 更新应用程序元数据
更新 Identity、Properties 和 VisualElements 节以匹配 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)。