用途:列出并更新 .NET 项目中过时的 NuGet 包,适用于用户提到“update packages”“outdated NuGet”“upgrade dependencies”等场景。
主要能力:使用 dotnet package list --outdated --include-transitive --format json 列出过时包(含传递依赖);解析输出识别哪些项目存在过时包、每个包是直接依赖还是传递依赖;读取各 csproj 中的 <ProjectReference> 分析项目依赖关系;以“项目、包名、当前版本 → 最新版本”的可读格式呈现结果。
使用方式:先列出过时包,若结果为空则告知用户并停止。更新前需与用户确认范围(全部包、按名称指定包或取消)。按项目更新时使用 --project 参数:dotnet package update <package> --project <path-to-csproj>,或 dotnet package update --project <path> 更新该项目全部包。更新顺序为先更新叶子项目(无依赖),再更新依赖项目,独立分支可并行。更新后用 dotnet build 验证;若构建失败,询问用户选择自动修复(分析错误并应用修复)或手动修复(展示错误由用户处理),最后汇总更新内容与最终构建状态。
限制与注意:该技能需要 .NET 10 SDK 或更高版本,dotnet package update 命令在 .NET 8-9 中不存在。传递依赖需通过更新其父包或添加直接引用来固定版本。若 dotnet package list 失败,检查是否位于 .NET 项目目录;若某个包更新失败,报告后继续处理其他包。始终使用 --project 参数按项目更新,更新前必须与用户确认,更新后必须构建以捕获破坏性变更。