使用 winget 工具安装和管理应用程序

用户可以在 Windows 10 和 Windows 11 计算机上使用 winget 命令行工具来发现、安装、升级、删除和配置应用程序。 此工具是 Windows 程序包管理器服务的客户端接口。

安装 winget

Windows 程序包管理器 winget 命令行工具作为应用安装程序的一部分在 Windows 11 和现代版本的 Windows 10 上提供。

可以从 Microsoft Store 获取应用安装程序。 如果已安装,请确保已将其更新为最新版本。

注意

winget 命令行工具仅在 Windows 10 1709(版本 16299)或更高版本上受支持。 在你首次以用户身份登录 Windows(这会触发 Microsoft Store 将 Windows 程序包管理器注册为异步进程的一部分)之前,winget 工具不可用。 如果最近已经以用户身份进行了首次登录,但发现 winget 尚不可用,则可以打开 PowerShell 并输入以下命令来请求此 winget 注册:Add-AppxPackage -RegisterByFamilyName -MainPackage Microsoft.DesktopAppInstaller_8wekyb3d8bbwe

安装 winget 预览版 [仅限开发人员]

WinGet 包含在 Windows 应用安装程序中。 要试用最新的 Windows 程序包管理器功能,可以通过以下方式之一安装预览版:

  • 下载最新的 winget 预览版。 阅读 winget 预览版发行说明,了解任何新功能。 安装此包将为你提供 WinGet 客户端预览版,但它不会从 Microsoft Store 中启用新预览版的自动更新。

  • 使用 Microsoft 帐户 (MSA)、工作、学校或 Azure Active Directory (AAD) 帐户注册 Windows 预览体验成员开发频道。 Windows 预览体验成员开发频道包括 Microsoft Store 中新预览版的自动更新。

  • 使用 Microsoft 帐户 (MSA) 注册 Windows 程序包管理器预览体验计划。 在添加你的 Microsoft 帐户 (MSA) 后(在你收到电子邮件通知后几天),你将收到 Microsoft Store 中新预览版的自动更新。

在 Windows 沙盒上安装 winget

Windows 沙盒提供了一个轻型桌面环境,可以安全地独立运行应用程序。 安装在 Windows 沙盒环境中的软件保持“沙盒”状态,并独立于主机运行。 Windows 沙盒不包含 winget,也不包含 Microsoft Store 应用,因此你需要从 GitHub 上的 winget 版本页下载最新的 winget 包。

要在 Windows 沙盒上安装 winget 的稳定版本,请从 Windows PowerShell 命令提示符执行以下步骤:

$progressPreference = 'silentlyContinue'
Write-Information "Downloading WinGet and its dependencies..."
Invoke-WebRequest -Uri https://aka.ms/getwinget -OutFile Microsoft.DesktopAppInstaller_8wekyb3d8bbwe.msixbundle
Invoke-WebRequest -Uri https://aka.ms/Microsoft.VCLibs.x64.14.00.Desktop.appx -OutFile Microsoft.VCLibs.x64.14.00.Desktop.appx
Invoke-WebRequest -Uri https://github.com/microsoft/microsoft-ui-xaml/releases/download/v2.8.6/Microsoft.UI.Xaml.2.8.x64.appx -OutFile Microsoft.UI.Xaml.2.8.x64.appx
Add-AppxPackage Microsoft.VCLibs.x64.14.00.Desktop.appx
Add-AppxPackage Microsoft.UI.Xaml.2.8.x64.appx
Add-AppxPackage Microsoft.DesktopAppInstaller_8wekyb3d8bbwe.msixbundle

如果需要程序包管理器的预览版或其他版本,请转到 https://github.com/microsoft/winget-cli/releases。 复制你需要的版本 URL 并更新上述 URI。

有关 Windows 沙盒的详细信息,包括如何安装沙盒以及使用沙盒的预期结果,请参阅 Windows 沙盒文档

管理员注意事项

安装程序的行为可能会有所不同,具体取决于你是否是以管理员权限运行 winget

  • 在没有管理员权限的情况下运行 winget 时,某些应用程序可能会要求提升权限才能进行安装。 当安装程序运行时,Windows 会提示你提升权限。 如果你选择不提升权限,则应用程序无法进行安装。

  • 在管理员命令提示符下运行 winget 时,如果应用程序要求你提升权限,你不会看到提升权限提示。 以管理员身份运行命令提示符时请务必小心,仅安装你信任的应用程序。

使用 winget

安装应用安装程序后,可以通过在命令提示符下键入“winget”来运行 winget

最常见的使用场景之一是搜索并安装你最喜欢的工具。

  1. 若要搜索某个工具,请键入 winget search <appname>

  2. 确认你需要的工具可用后,可以通过键入 winget install <appname>安装该工具。 winget 工具会启动安装程序,将应用程序安装在你的电脑上。 winget commandline

  3. 除了安装和搜索外,winget 还提供了许多其他命令,用来显示应用程序详细信息更改源以及验证程序包。 若要获取完整的命令列表,请键入 winget --helpwinget help

一些用户报告了客户端不在其路径上的问题

命令

winget 工具的当前预览版支持以下命令。

命令 说明
info 显示有关系统的元数据(版本号、体系结构、日志位置等)。 有助于进行故障排除。
install 安装指定的应用程序。
show 显示指定应用程序的详细信息。
source 添加、删除和更新 winget 工具访问的 Windows 程序包管理器存储库。
search 搜索某个应用程序。
list 显示已安装的包。
升级 升级给定的包。
uninstall 卸载给定的包。
hash 为安装程序生成 SHA256 哈希。
validate 验证要提交到 Windows 程序包管理器存储库的清单文件。
设置 打开设置。
功能 显示试验功能的状态。
export 导出已安装包的列表。
import 将所有包安装到一个文件中。
pin 管理包固定。
configure 将系统配置为所需状态。
下载 下载指定应用程序的安装程序。

选项

winget 工具支持以下选项。

选项 描述
-v、--version 返回 winget 的当前版本。
--info 提供有关 winget 的所有详细信息,包括许可证链接、隐私声明和配置的组策略。
-?、--help 显示 winget 的其他帮助。

支持的安装程序格式

winget 工具支持以下类型的安装程序:

  • EXE(具有 Silent 和 SilentWithProgress 标志)
  • ZIP
  • INNO
  • NULLSOFT
  • MSI
  • WIX
  • APPX
  • MSIX
  • BURN
  • PORTABLE

编写 winget 脚本

可以使用以下语法在单个命令中安装多个应用程序。

USAGE: winget install <query1> <query2> ...

示例

winget install Microsoft.WindowsTerminal Microsoft.PowerToys Microsoft.VisualStudioCode

注意

使用脚本时,winget 会按指定顺序启动应用程序。 当安装程序返回成功或失败时,winget 会启动下一个安装程序。 如果某个安装程序启动了另一进程,它可能会提前返回到 winget。 这会导致 winget 在上一个安装程序完成之前安装下一个安装程序。

调试和故障排除

winget 提供日志记录来帮助诊断问题。 有关日志记录的故障排除和详细信息,请参阅调试和故障排除

缺少工具

如果社区存储库不包含你的工具或应用程序,请将包提交到我们的存储库。 添加你最喜爱的工具后,你和其他人都可以使用它。

自定义 winget 设置

可以通过修改 settings.json 文件配置 winget 命令行体验 。 有关详细信息,请参阅 https://aka.ms/winget-settings。 请注意,这些设置仍处于试验状态,并且尚未针对工具的预览版本最后确定。

开源详细信息

winget 工具是 GitHub 上的存储库 https://github.com/microsoft/winget-cli/ 中提供的一个开源软件。 用于构建客户端的源代码位于 src 文件夹中。

winget 的源代码包含在 Visual Studio 2019 C++ 解决方案中。 若要正确构建解决方案,请安装最新的包含 C++ 工作负荷的 Visual Studio

我们鼓励你为 GitHub 上的 winget 源代码贡献力量。 你必须先同意并签署 Microsoft CLA。

疑难解答

winget-cli 存储库中有常见问题和常见错误的列表,还有相关解决方法建议: