一、前言
1.1 简介
Winget(Windows Package Manager)是微软官方推出的命令行包管理工具,对标 Linux 系统的 apt、macOS 系统的 Homebrew,可实现软件的快速搜索、安装、更新、卸载及批量管理,无需手动下载安装包,大幅提升 Windows 系统软件管理效率,适用于开发者、IT 管理员及命令行爱好者日常使用。
1.2 适用场景
开发者快速部署开发工具(如 VS Code、Python、Node.js 等),简化开发环境搭建流程;
批量安装/更新/卸载软件,适合新电脑配置、办公环境统一部署等场景;
命令行爱好者替代图形化安装流程,减少弹窗干扰,简化操作步骤;
软件版本精准管理,可快速安装、切换指定版本软件,适配特定使用需求;
通过配置文件实现开发环境的自动化、可重复部署,提升配置一致性。
1.3 支持系统
Windows 11:默认预装,无需额外安装,开箱即可使用;
Windows 10:需升级至版本 1709 及以上,部分旧版本需手动安装「App Installer」后方可使用;
Windows Server 2025:作为系统组件,通过更新传递获取并更新;
系统架构:适配 x64、x86、ARM64 等主流架构。
二、安装与验证
2.1 安装方式(按推荐优先级排序)
2.1.1 默认预装(推荐,适用于 Windows 11/部分 Windows 10)
Windows 11 及 Windows 10 21H1 以上版本通常已预装 Winget,无需手动操作,直接进入「安装验证」环节即可确认是否可用。
2.1.2 Microsoft Store 手动安装(适用于未预装的 Windows 10/11)
按 Win + S 键打开搜索框,输入“Microsoft Store”并打开应用商店;
在搜索栏中输入“App Installer”,找到对应应用(若搜索不到,可直接访问官方链接:https://apps\.microsoft\.com/detail/9NBLGGH4NNS1);
点击「获取」或「安装」,登录微软账户后等待自动下载安装完成;
安装完成后,重启命令行工具(PowerShell/CMD),即可使用 Winget。
2.1.3 手动下载安装(适用于无法访问 Microsoft Store 的场景)
部分企业版、教育版或 LTSC 版本的 Windows 系统可能禁用了 Microsoft Store,需手动下载安装包及依赖项,步骤如下:
下载主安装包:访问 Winget 的 GitHub Releases 页面,在最新版本的 Assets 部分,下载
Microsoft\.DesktopAppInstaller\_8wekyb3d8bbwe\.msixbundle文件(可根据系统架构选择对应版本);下载依赖项:
VCLibs(必需):从微软官方链接下载对应系统架构的版本;
UI.Xaml(Windows 10 必需):访问 NuGet Gallery 下载 Microsoft.UI.Xaml.2.8.x 包,将文件扩展名改为 .zip 并解压,在 tools/AppX/x64/Release/ 目录下找到
Microsoft\.UI\.Xaml\.2\.8\.appx文件;安装依赖与主程序:以管理员身份打开 PowerShell,依次执行以下命令(将路径替换为实际下载位置):
`\# 安装 VCLibs 依赖
Add-AppxPackage -Path "C:\Downloads\Microsoft.VCLibs.x64.14.00.Desktop.appx" # 安装 UI.Xaml 依赖(Windows 10 系统) Add-AppxPackage -Path "C:\Downloads\Microsoft.UI.Xaml.2.8.appx" # 安装 Winget 主程序 Add-AppxPackage -Path "C:\Downloads\Microsoft.DesktopAppInstaller_8wekyb3d8bbwe.msixbundle"`
2.1.4 特殊场景安装(Windows 沙盒/LTSC 版本)
Windows 沙盒:需通过 PowerShell 安装 WinGet 模块并引导安装,具体命令如下:
`$progressPreference = \&\#39;silentlyContinue\&\#39;
Install-PackageProvider -Name NuGet -Force | Out-Null Install-Module -Name Microsoft.WinGet.Client -Force -Repository PSGallery | Out-Null Repair-WinGetPackageManager -AllUsers`
LTSC 版本:优先启用 Microsoft Store 后按 2.1.2 方法安装;无法启用 Store 则按 2.1.3 方法手动安装所有组件。
2.2 安装验证
打开管理员 PowerShell 或 CMD(推荐管理员模式,避免权限不足问题);
执行命令:
winget \-\-version;验证结果:
成功:输出版本号(如 v1.6.3482、v1.7.xxxx),说明安装完成;
失败:提示“不是内部或外部命令”,需重新安装「App Installer」并重启命令行,或检查依赖项是否安装完整。
三、核心命令详解(必学)
3.1 命令格式规范
所有 Winget 命令遵循统一语法结构,无需复杂记忆,格式如下:winget \<命令\> \(参数\) \(软件标识/路径\)说明:
命令:核心操作(如 search、install、upgrade 等);参数:可选,用于细化操作(如 --silent 静默安装、--version 指定版本);软件标识:可使用「软件名称」或「官方 ID」(ID 唯一,推荐使用,避免重名冲突)。
3.2 常用核心命令(含示例,重点掌握)
| 操作场景 | 命令语法 | 示例命令 | 详细说明 |
|---|---|---|---|
| 查看版本(验证安装) | winget --version | winget --version | 快速验证 Winget 是否安装成功,输出版本号即正常 |
| 查看帮助(查询命令) | winget --help 或 winget <命令> --help | winget install --help | 查看所有核心命令,或单个命令的详细用法、参数说明 |
| 搜索软件 | winget search <关键词/软件名> | winget search vscode、winget search 微信 | 搜索匹配的软件,输出名称、ID、版本、来源等信息,用于获取软件官方 ID(安装时精准匹配) |
| 安装软件(默认) | winget install <软件ID/名称> | winget install Microsoft.VisualStudioCode | 推荐用软件 ID 安装(避免重名),安装过程会有弹窗提示,需手动确认 |
| 静默安装(推荐) | winget install <软件ID> --silent | winget install WeChat.WeChat --silent | 无弹窗干扰,后台自动完成安装,适合批量安装或不想手动操作的场景 |
| 安装指定版本 | winget install <软件ID> --version <版本号> | winget install Python.Python.3.11 --version 3.11.4 | 需先通过 search 命令确认软件支持的版本号,适配特定版本需求 |
| 更新单个软件 | winget upgrade <软件ID/名称> | winget upgrade Microsoft.VisualStudioCode | 将指定软件更新至最新版本,需确认更新操作 |
| 更新所有软件 | winget upgrade --all | winget upgrade --all | 批量更新系统中所有可通过 Winget 管理的软件,每个更新需手动确认(高效便捷) |
| 卸载软件 | winget uninstall <软件ID/名称> | winget uninstall Microsoft.VisualStudioCode | 卸载指定软件,部分软件需手动确认卸载操作 |
| 查看已安装软件 | winget list(支持筛选) | winget list、winget list --name "VS Code" | 列出系统中所有可通过 Winget 管理的软件,支持按名称、ID 筛选;添加 --upgrade-available 可只显示需更新的软件 |
| 导出软件列表(备份) | winget export -o <导出路径/文件名.json> | winget export -o C:\桌面\软件列表.json | 导出通过 Winget 安装的软件列表,用于备份或新电脑快速部署 |
| 导入软件列表(批量安装) | winget import -i <导入文件路径.json> | winget import -i C:\桌面\软件列表.json | 从导出文件批量安装软件,新电脑配置必备,节省部署时间 |
| 更新软件源缓存 | winget source update | winget source update | 同步微软官方软件源,获取最新软件列表,解决搜索不到软件的问题 |
3.3 关键命令补充说明
3.3.1 搜索命令(winget search)
核心作用:查找目标软件的官方 ID,避免因软件名称重复(如“微信”有普通版和开发者工具)导致安装错误。
示例:搜索“微信”并筛选结果,执行 winget search wechat,输出结果解读:
| 名称 | ID | 版本 | 源 |
|---|---|---|---|
| 微信 | WeChat.WeChat | 3.9.5.81 | winget |
| 微信开发者工具 | Tencent.wechat-devtools | 1.06.2309010 | winget |
安装时优先使用“ID”(如 WeChat.WeChat),确保安装目标精准无误。
3.3.2 安装命令(winget install)
补充参数说明:
--install-dir:指定软件安装路径(部分软件支持),示例:
winget install Microsoft\.VisualStudioCode \-\-install\-dir \&\#34;D:\\Software\\VS Code\&\#34;;--accept-package-agreements:自动接受软件许可协议,无需手动确认,结合 --silent 可实现完全无人值守安装;
--force:强制安装,适用于软件已安装但 Winget 未识别,需重新安装的场景。
3.3.3 列表命令(winget list)
常用筛选参数:
--name:按软件名称筛选,示例:
winget list \-\-name \&\#34;微信\&\#34;;--id:按软件 ID 筛选,示例:
winget list \-\-id WeChat\.WeChat;--upgrade-available:只显示有更新可用的软件,示例:
winget list \-\-upgrade\-available;--exact:精确匹配筛选关键词,区分大小写,避免模糊匹配。
四、进阶配置(可选,提升使用效率)
4.1 Winget 配置文件(YAML 格式)
Winget 支持通过 YAML 格式的配置文件,将软件安装、系统设置、依赖项配置合并为一个命令,实现开发环境的自动化、可重复部署,适用于团队协作或多设备配置场景,需 Winget 版本 v1.6.2631 及以上支持。
4.1.1 配置文件核心优势
无人值守安装:输入
winget configure命令,自动完成所有软件安装和系统配置;可靠可重复:预定义软件版本、依赖项和系统设置,避免手动配置出错;
支持协作:可托管在 GitHub 等平台,方便团队共享和修改;
声明性配置:无需关注操作顺序,只需定义最终所需的系统状态,Winget 自动完成适配。
4.1.2 配置文件使用方法
获取配置文件:可从微软官方 DSC 存储库(https://aka\.ms/dsc\.yaml)下载示例文件,或自行编写;
运行配置文件:
方法 1:双击配置文件(.yaml 格式),自动调用 Winget 执行配置;
方法 2:在命令行执行命令:
winget configure \-f \<配置文件路径\.yaml\>;注意事项:运行前需验证配置文件可信度,避免恶意配置;部分配置需管理员权限。
4.2 启用实验性功能
Winget 会持续推出新功能(如批量卸载、自定义软件源等),可通过以下步骤启用实验性功能:
打开 Winget 配置文件(路径:%LOCALAPPDATA%\Packages\Microsoft.DesktopAppInstaller_8wekyb3d8bbwe\LocalState\settings.json);
在文件中添加实验性功能配置(示例,具体参数可参考官方文档):
`\{"experimentalFeatures": { "uninstallAll": true, "customSources": true } }`
保存文件并重启命令行,即可使用对应的实验性功能。
4.3 自定义软件源
默认情况下,Winget 使用微软官方软件源,可添加自定义软件源(如企业内部软件源),命令如下:
添加软件源:
winget source add \-\-name \<源名称\> \-\-arg \<源地址\>;查看所有软件源:
winget source list;删除软件源:
winget source remove \-\-name \<源名称\>;注意:自定义软件源需符合 Winget 规范,否则可能无法正常搜索和安装软件。
五、常见问题与解决方案
| 问题现象 | 可能原因 | 解决方案 |
|---|---|---|
| 输入 winget 命令提示“不是内部或外部命令” | 未安装 App Installer;安装后未重启命令行;环境变量未配置 | 1. 重新安装 App Installer;2. 重启 PowerShell/CMD;3. 检查环境变量 PATH 中是否包含 Winget 安装路径 |
| 搜索不到目标软件 | 软件源未更新;软件未收录到 Winget 官方源;关键词输入错误 | 1. 执行 winget source update 更新缓存;2. 确认软件名称/ID 正确;3. 尝试添加自定义软件源 |
| 安装软件提示“权限不足” | 未以管理员身份运行命令行;软件安装路径需要管理员权限 | 1. 以管理员身份打开 PowerShell/CMD;2. 更换软件安装路径(如 D 盘非系统目录) |
| 静默安装失败,普通安装正常 | 部分软件不支持静默安装;软件安装包有特殊交互要求 | 1. 取消 --silent 参数,使用普通安装;2. 确认软件是否支持静默安装(参考软件官方文档) |
| 导入软件列表时部分软件安装失败 | 软件 ID 已更新;软件源中无对应版本;网络问题导致下载失败 | 1. 执行 winget source update;2. 用 search 命令确认软件最新 ID;3. 检查网络连接,重新执行导入命令 |
| Winget 配置文件运行失败 | 配置文件语法错误;依赖项缺失;无管理员权限 | 1. 检查 YAML 语法是否正确;2. 确认依赖项已安装;3. 以管理员身份运行配置命令;4. 验证配置文件可信度 |
| 提示“无法安装,因为找不到依赖项” | 未安装 VCLibs、UI.Xaml 等必备依赖;依赖项版本不匹配 | 按 2.1.3 方法重新安装对应依赖项,确保版本与系统架构匹配 |
六、注意事项
权限说明:部分操作(如安装到系统目录、批量更新)需以管理员身份运行命令行,否则可能失败;以管理员身份运行时,需仅安装信任的软件,避免安全风险。
软件来源:Winget 官方源的软件均经过微软验证,安全性有保障,不建议添加未知来源的自定义软件源,避免安装恶意软件。
版本兼容:部分命令(如 configure)需特定 Winget 版本支持,若无法使用,可通过 Microsoft Store 更新 App Installer 升级 Winget。
日志查看:若操作失败,可执行
winget \-\-open\-logs打开日志文件,排查失败原因。首次登录:Windows 10/11 首次登录后,Winget 可能需要一段时间才能完成注册,若安装后无法使用,可执行
Add\-AppxPackage \-RegisterByFamilyName \-MainPackage Microsoft\.DesktopAppInstaller\_8wekyb3d8bbwe手动注册。