新軟件的收錄與已有軟件的更新擁有幾乎一致的操作步驟。本文將以我在 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/ 查看視頻教程。