使用 WinGet 工具进行调试和问题故障排除
当 Windows 程序包管理器安装、搜索或列出应用程序时,有时需要查看日志文件才能更好地了解行为。
WinGet 日志
默认情况下,Windows 程序包管理器会在执行命令时创建日志文件。 这些日志包含有助于调试 WinGet 问题的信息。 日志文件没有最大大小。 它们通常只有几 KB 的大小。 当目录中的日志文件数超过 100 时,将开始删除最早的日志文件。 没有基于时间的日志删除,这些设置不可配置。 如果已达到 100 个文件日志容量,只需将想要保留的任何 WinGet 日志移到其他目录中。
使用命令 winget --info
查找 WinGet 日志文件的目录路径。 WinGet 日志文件的默认路径为:
%LOCALAPPDATA%\Packages\Microsoft.DesktopAppInstaller_8wekyb3d8bbwe\LocalState\DiagOutputDir
可将 --logs 或 --open-logs 选项包含在任何命令中,以便在命令完成后打开日志目录。 以下是使用 --logs 选项的一些示例:
> winget list --logs
> winget source update --open-logs
--verbose-logs
如果需要更全面的日志文件(它们提供与 CDN 和源的完整通信),还可以在命令行上包含 --verbose 或 --verbose-logs。 以下是使用 --verbose-logs 选项的一些示例:
> winget install vscode --verbose-logs
> winget search -n visual --verbose-logs
> winget source add -n mysource -t Microsoft.REST -a https://www.contoso.org --verbose
已知问题
在 Windows 程序包管理器客户端存储库中,已知问题以及源和行为的列表会保持最新状态。 如果使用 WinGet 工具时遇到问题,请转到此处进行故障排除。
退出代码
WinGet 工具返回退出代码,以指示命令是成功还是失败。 有关退出代码及其含义的表格,请参阅 Windows 程序包管理器客户端存储库的“返回代码”文件。
特定用户的范围与计算机的范围
并非所有安装程序都支持在“用户”范围与“计算机”范围内进行一致安装。
- 基于 MSIX 的包:可靠的 WinGet 行为。
- 基于 MSI 的包通常支持可靠的 WinGet 配置,但在某些情况下,该包嵌套在基于 .exe 的安装程序中,因此可能具有更大的可变性。
- 基于 EXE 的安装程序围绕范围的行为不一定具有确定性。 在某些情况下,用于指定范围的参数并不可用,而在其他情况下,安装程序可能会根据用户是否是本地管理员组的成员来做出决定。 在用户范围内安装的包可能仍需要管理员的 UAC(用户帐户控制)授权。
在 GitHub 上的 WinGet 产品存储库中查看有关范围相关问题的更多详细信息。