用户可以在 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'
$latestWingetMsixBundleUri = $(Invoke-RestMethod https://api.github.com/repos/microsoft/winget-cli/releases/latest).assets.browser_download_url | Where-Object {$_.EndsWith(".msixbundle")}
$latestWingetMsixBundle = $latestWingetMsixBundleUri.Split("/")[-1]
Write-Information "Downloading winget to artifacts directory..."
Invoke-WebRequest -Uri $latestWingetMsixBundleUri -OutFile "./$latestWingetMsixBundle"
Invoke-WebRequest -Uri https://aka.ms/Microsoft.VCLibs.x64.14.00.Desktop.appx -OutFile Microsoft.VCLibs.x64.14.00.Desktop.appx
Add-AppxPackage Microsoft.VCLibs.x64.14.00.Desktop.appx
Add-AppxPackage $latestWingetMsixBundle
如果需要程序包管理器的预览版或其他版本,请转到 https://github.com/microsoft/winget-cli/releases。 复制你需要的版本 URL 并更新上述 URI。
有关 Windows 沙盒的详细信息,包括如何安装沙盒以及使用沙盒的预期结果,请参阅 Windows 沙盒文档。
管理员注意事项
安装程序的行为可能会有所不同,具体取决于你是否是以管理员权限运行 winget。
在没有管理员权限的情况下运行 winget 时,某些应用程序可能会要求提升权限才能进行安装。 当安装程序运行时,Windows 会提示你提升权限。 如果你选择不提升权限,则应用程序无法进行安装。
在管理员命令提示符下运行 winget 时,如果应用程序要求你提升权限,你不会看到提升权限提示。 以管理员身份运行命令提示符时请务必小心,仅安装你信任的应用程序。
使用 winget
安装应用安装程序后,可以通过在命令提示符下键入“winget”来运行 winget。
最常见的使用场景之一是搜索并安装你最喜欢的工具。
若要搜索某个工具,请键入 winget search <appname>。
确认你需要的工具可用后,可以通过键入 winget install <appname> 来安装该工具。 winget 工具会启动安装程序,将应用程序安装在你的电脑上。
除了安装和搜索外,winget 还提供了许多其他命令,用来显示应用程序详细信息,更改源以及验证程序包。 若要获取完整的命令列表,请键入 winget --help。
一些用户报告了客户端不在其路径上的问题。
winget 工具的当前预览版支持以下命令。
REM Powertoys
winget install Microsoft.Powertoys
if %ERRORLEVEL% EQU 0 Echo Powertoys installed successfully.
REM Terminal
winget install Microsoft.WindowsTerminal
if %ERRORLEVEL% EQU 0 Echo Terminal installed successfully. %ERRORLEVEL%
使用脚本时,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 存储库中有常见问题和常见错误的列表,还有相关解决方法建议:
常见问题 - 无法识别、无法运行、应用安装程序版本或 PATH 变量需要更新
常见错误 - 错误 0x801901a0、0x80d03002、0x80070490