新软件的收录与已有软件的更新拥有几乎一致的操作步骤。本文将以我在 winget 中发布 微软电脑管家 2.7.1 版本为案例,讲述如何在 winget 自有源发布你的软件包。
对于此教程的官方文档,你可在 将程序包提交到 Windows 程序包管理器 找到它。
winget 是什么?
Windows 程序包管理器 命令行界面,也叫做 winget,是一个综合的 程序包管理器解决方案,由一个命令行工具和一组用于在 Windows 10 和 Windows 11 上安装应用程序的服务组成。
简单地说,你可以使用 winget 管理计算机中的应用程序,包括获取应用程序信息、安装/卸载应用程序。
如果你是首次使用 winget,Microsoft Store 源会要求你同意他们的 Terms of Transaction,键入 Y 即可。
使用 winget 查看软件包信息
在 winget 中,Microsoft Store 的产品 ID(从 msstore 源)、Package Identifier(形如 发布者名称.软件包名称
,例如:Microsoft.PCManager
)和 Moniker(由开发者/社区成员在发布版本时定义,形如 mapcmanager)。
产品 ID
同样以微软电脑管家为例。它在 Microsoft Store 中的链接为 https://apps.microsoft.com/store/detail/%E5%BE%AE%E8%BD%AFpc%E7%AE%A1%E5%AE%B6/9P35S3ZNMCHL ,所以我们可以知晓微软电脑管家在 Microsoft Store 的产品 ID 为 9P35S3ZNMCHL。
在命令行窗口中运行 winget show 9P35S3ZNMCHL
,即可查看微软电脑管家在 Microsoft Store 的信息:
图没了,不想补,后头再补。是的当时写得很鬼畜现在就是个占位的实际上没有任何版本上线
Package Identifier
此条目由首次发布在 winget 源时定义。如非必要,请不要在已有 Identifier 基础上相同软件使用多个 Identifier。
管家的 Identifier 为 Microsoft.PCManager,所以你可以通过 winget show Microsoft.PCManager
的方式查看管家在 winget 源的安装信息。
图没了,不想补,后头再补。
Moniker
或许你已经看到了 Moniker 字段,是的,官方对它的解释 是软件包的友好名称或别名。开发者和社区成员可以在发布新版本时定义此字段,以便用户通过此字段搜寻软件、快速安装。
所以,你同样可以使用 winget show mspcmanager
来查找微软电脑管家。
发布软件包
扯了这么多,是时候回归正题了。
说到在 winget 发布软件包,就绕不开它的官方 repo – https://github.com/microsoft/winget-pkgs
需要注意的是,winget 目前只支持 MSIX/MSI 或 .exe 安装包,压缩包与字体文件暂时不在支持范围内。
Issue
如果你不是开发者并且不会编写 Manifest 文件(尽管官方提供了 简单易用的 Yaml 创建工具),可以选择 提交 Issue 等待有缘人协助你完成软件包 Manifest 的编写并提交 Pull Request 完成软件包的上架工作。
Pull Request
你同样可以直接编写完 Manifest 文件后直接提交 Pull Request,这是最快的软件包上架步骤。
对于这部分,我将使用官方提供的 Yaml 创建工具(你可以在 winget-pkgs/Tools 找到)演示。
Fork 仓库
首先,Fork 上方的官方 repo 到你或你拥有管理权限的组织的账户下。在此之后,你应该能得到一个形如 https://github.com/<username>/winget-pkgs
的链接。
Clone
进入你的分支仓库,想办法把它 clone 下来(选 https、ssh 还是 gh-cli 是你的事情)。
比如,我把它放在了 "C:\Users\LiCaoZ\Documents\winget-pkgs"
目录下。那么,在 clone 完成后,请将命令行位置 cd 至 C:\Users\LiCaoZ\Documents\winget-pkgs
。
使用 YAML Create 工具
这里就需要请出我们的 YAML Create 工具了,只需要运行下面的命令:
powershell .\Tools\YamlCreate.ps1
就可以打开 YAML Create 工具。
首次启动可能会提示由于安全设置不能运行啥的,应该会给个链接让你去看 Microsoft 文档。
下面不想写了,可以前往 https://www.bilibili.com/video/BV1qY411S7Uo/ 查看视频教程。