Windows 的包管理程序,WinGet 简单体验

各家操作系统都有自己的包管理器,能够使用统一的软件源为电脑获取应用。比如Debian的apt,macOS的Homebrew。Windows一直缺少一个广泛使用、功能完备的包管理器,Chocolatey和NuGet也并不是非常完善。终于微软发布了WinGet包管理器,也算是对开发社区更加友好的重要举措。

申请WinGet内测

在写这篇文章的时候,WinGet目前还处于公共预览版阶段,所以需要从 Windows 程序包管理器预览体验计划 链接的问卷中填入你的微软账号邮箱。申请通过后会给你发一封邮件,然后你就可以在Microsoft Store中等待包管理器的更新了。但现在WinGet已经公测,也已经随Windows推送。

如果你不想使用Microsoft Store,你也可以在 GitHub Releases 下载单独的安装包,或者加入Windows Insider,直接体验测试版的Windows。

WinGet基本操作

WinGet兼容命令提示符,当然也兼容PowerShell。我使用PowerShell 7.1.1 + Windows Terminal来运行。

以下是winget命令的操作。

操作

那就来实地操作一下,比如安装个TIM?

输入

powershell
1
winget install TIM

来安装TIM。winget会从腾讯的服务器下载最新的安装包,然后静默安装。

小彩蛋:命令后面加 –rainbow参数,进度条会变成彩虹色~

rainbow

下载完成后会请求管理员权限,没啥问题,毕竟Linux装个软件还得输sudo不是。

后面的过程基本是静默安装,只弹出了一个 “TIM正在运行,是否关闭TIM” 的对话框。也没有任何的捆绑插件,十分纯净。

我又测试了安装华为浏览器,也是静默安装的。这里出现了一个问题:应用名 “Huawei Browser” 有空格,不能被正确识别。

华为浏览器

但是可以使用包名代替:

用包名安装华为浏览器

这样就可以正常安装了。

值得注意的是,这个软件似乎是用户投放的,不属于官方。这个人好像还传了许多奇奇怪怪的软件……

关于软件源

Microsoft的初衷是建设一个对开发者更友好的包管理器,但正如你所见,对于一般人来说,WinGet似乎也挺合适。正如上面的测试,TIM这种日常软件也被包含在软件源中。而且绝佳的地方是它没有捆绑,可以免于安装整个全家桶的困扰。

可以使用winget search命令来搜索软件包。比如搜索xiaomi,出现了MIUI + 客户端。

MIUI+

当然,微软自家的应用当然不能落下(虽然不都是微软的应用):

Microsoft 的搜索结果

搜索Microsoft得到的结果(部分)

也有其他家的开发工具:

Sublime Text

Sublime Text

Clang LLVM

Clang LLVM

JRE

Java运行时

如果你想打会游戏,甚至还有……

Steam

Steam

软件包管理器的默认软件源架设在Azure上,但软件源的代码GitHub上。如果你发现缺少你的应用,可以在 这里 提交Pull Request。也有很多爱好者自行上传的应用。未来也可能会出现第三方软件源。

winget.run 是更加友好的软件包查找器,似乎与PyPI有点相似?

一些缺陷

某些软件会出现安装失败的现象。比如上文提到的MIUI+,CLI中提示安装失败:

安装失败

不光安装失败,还把我之前装的那个版本也整坏了……

安装损坏

而且目前对一些我们可能认为理所当然的东西支持还不稳定,甚至…… 卸载。它被划为了实验性功能。

参考文献

[1] 使用 winget 工具管理和安装应用程序 | Microsoft Docs

许可证:CC BY-SA 4.0
最后更新于 2026 年 2 月 2 日 21:39