mcpField
L
ln-712-nuget-upgrader

ln-712-nuget-upgrader

github.com/levnikolaevich开发58455 次安装2 天前更新
代码仓库

关于 ln-712-nuget-upgrader

用于 .NET 项目的 NuGet 包升级技能,面向维护 .NET 解决方案的开发者。它审计漏洞与过期依赖、识别重大版本变更,并在升级后验证构建和测试。

主要功能

  1. 01发现解决方案中的 .csproj
  2. 02审计漏洞和过期包
  3. 03检测升级中的破坏性变更
  4. 04执行包升级并迁移
  5. 05运行还原、构建和测试
  6. 06生成升级结果报告

适用场景

  1. 01盘点解决方案中的过期 NuGet 包
  2. 02评估主要版本升级风险
  3. 03验证依赖升级后的构建与测试

MCP 相关

该技能可通过 MCP 工具查询库文档和迁移指南,并以 Context7 和 MCP Ref 为优先来源。

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/levnikolaevich/claude-code-skills --skill ln-712-nuget-upgrader

安装后在 Claude Code 中输入/ln-712-nuget-upgrader确认已加载。

附带文件diagram.htmlreferences/dotnet_version_matrix.md

详细介绍

路径: 文件路径(shared/、references/、../ln-*)均相对于 skills 仓库根目录。如果在当前工作目录下找不到,请定位此 SKILL.md 所在目录,并向上一级找到仓库根目录。

ln-712-nuget-upgrader

类型: L3 Worker
类别: 7XX 项目引导
父级: ln-710-dependency-upgrader

升级 .NET NuGet 包,并自动检测和迁移重大变更。


概述

方面详情
输入解决方案/项目路径
输出更新后的 .csproj 文件、迁移报告
支持.NET 6、7、8、9、10

工作流

查看 diagram.html 了解可视化工作流。

阶段: 准备检查 → 查找项目 → 安全审计 → 检查过期项 → 识别重大变更 → 应用升级 → 还原并构建 → 报告


阶段 0:准备检查

检查项必需缺失时的操作
.csproj 文件是阻止升级
.sln 文件否改为使用 csproj 发现方式

Worker 假定协调器(ln-710)已验证 git 状态并创建备份。


阶段 1:查找项目

发现方式
方式命令
查找 .csprojGet-ChildItem -Recurse -Filter *.csproj
从解决方案查找dotnet sln list

阶段 2:安全审计

命令
检查项命令
存在漏洞的包dotnet list package --vulnerable
过期的包dotnet list package --outdated
操作
严重程度操作
严重阻止升级并报告
高警告后继续
中/低仅记录

阶段 3:检查过期项

使用 dotnet-outdated
步骤命令
安装工具dotnet tool install --global dotnet-outdated-tool
检查dotnet outdated --output json

阶段 4:识别重大变更

检测
  1. 比较当前版本与最新主版本
  2. 查看 breaking_changes_patterns.md
  3. 使用 MCP 工具(见下文)查找迁移指南
常见重大变更
包发生重大变更的版本主要变更
Microsoft.EntityFrameworkCore8 → 9查询变更、迁移格式
Serilog.AspNetCore7 → 8配置格式
Swashbuckle.AspNetCore6 → 7支持 Minimal API

用于迁移搜索的 MCP 工具

优先顺序(回退策略)
优先级工具使用时机
1mcp__context7__query-docs首选,用于查找库文档
2mcp__Ref__ref_search_documentationMicrosoft 官方文档
3WebSearch最新信息、社区解决方案
Context7 用法
步骤工具参数
1. 查找库mcp__context7__resolve-library-idlibraryName: "EntityFrameworkCore"
2. 查询文档mcp__context7__query-docsquery: "EF Core 8 to 9 migration breaking changes"
MCP Ref 用法
操作工具查询示例
搜索mcp__Ref__ref_search_documentation"dotnet EntityFrameworkCore 9 migration guide"
阅读mcp__Ref__ref_read_url搜索结果中的 URL
WebSearch 回退

Context7/Ref 未返回结果时使用:

  • "<package> .NET <version> breaking changes migration"
  • "<error code> <package> fix"

阶段 5:应用升级

优先顺序
优先级包类型
1SDK/运行时(Microsoft.NET.Sdk)
2框架(Microsoft.AspNetCore.*)
3EF Core(会影响迁移)
4日志记录(Serilog.*)
5其他包
命令
操作命令
更新指定包dotnet add package <name> --version <ver>
更新所有包dotnet outdated --upgrade

阶段 6:还原并构建

命令
步骤命令
还原dotnet restore
构建dotnet build --configuration Release
测试dotnet test
失败时
  1. 根据错误信息确定失败的包
  2. 在 Context7/Ref 中搜索迁移指南
  3. 如果仍未解决:回退包版本并继续

第 7 阶段:报告结果

报告结构
字段说明
solution解决方案路径
projects[]已更新的项目
duration总耗时
upgrades[]已应用的升级
buildVerificationPASSED 或 FAILED
testResultsX 项通过,Y 项失败

配置

Options:
  # Upgrade scope
  upgradeType: major          # major | minor | patch

  # Security
  auditLevel: high
  minimumReleaseAge: 14

  # .NET specific
  includePrerelease: false
  targetFramework: net10.0

  # Verification
  runTests: true
  runBuild: true

错误处理

错误原因解决方案
CS0246缺少类型搜索替代 API
NU1605检测到降级检查包约束
构建失败重大变更通过 Context7 应用迁移

参考资料


完成定义

  • 已发现所有 .csproj 文件(通过解决方案或递归扫描)
  • 已完成安全审计(dotnet list package --vulnerable)
  • 已通过 dotnet-outdated 识别过期的包
  • 已通过 breaking_changes_patterns.md 和 MCP 工具检测重大变更
  • 已按优先级顺序应用升级(SDK > 框架 > EF Core > 其他)
  • dotnet restore、dotnet build、dotnet test 均已通过
  • 已返回报告,包含已更新的项目、已应用的升级以及构建/测试状态

版本: 1.1.0 最后更新: 2026-01-10

评论

支持 Markdown