关于 ln-712-nuget-upgrader
用于 .NET 项目的 NuGet 包升级技能,面向维护 .NET 解决方案的开发者。它审计漏洞与过期依赖、识别重大版本变更,并在升级后验证构建和测试。
主要功能
- 01发现解决方案中的 .csproj
- 02审计漏洞和过期包
- 03检测升级中的破坏性变更
- 04执行包升级并迁移
- 05运行还原、构建和测试
- 06生成升级结果报告
适用场景
- 01盘点解决方案中的过期 NuGet 包
- 02评估主要版本升级风险
- 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:查找项目
发现方式
| 方式 | 命令 |
|---|---|
| 查找 .csproj | Get-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:识别重大变更
检测
- 比较当前版本与最新主版本
- 查看 breaking_changes_patterns.md
- 使用 MCP 工具(见下文)查找迁移指南
常见重大变更
| 包 | 发生重大变更的版本 | 主要变更 |
|---|---|---|
| Microsoft.EntityFrameworkCore | 8 → 9 | 查询变更、迁移格式 |
| Serilog.AspNetCore | 7 → 8 | 配置格式 |
| Swashbuckle.AspNetCore | 6 → 7 | 支持 Minimal API |
用于迁移搜索的 MCP 工具
优先顺序(回退策略)
| 优先级 | 工具 | 使用时机 |
|---|---|---|
| 1 | mcp__context7__query-docs | 首选,用于查找库文档 |
| 2 | mcp__Ref__ref_search_documentation | Microsoft 官方文档 |
| 3 | WebSearch | 最新信息、社区解决方案 |
Context7 用法
| 步骤 | 工具 | 参数 |
|---|---|---|
| 1. 查找库 | mcp__context7__resolve-library-id | libraryName: "EntityFrameworkCore" |
| 2. 查询文档 | mcp__context7__query-docs | query: "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:应用升级
优先顺序
| 优先级 | 包类型 |
|---|---|
| 1 | SDK/运行时(Microsoft.NET.Sdk) |
| 2 | 框架(Microsoft.AspNetCore.*) |
| 3 | EF Core(会影响迁移) |
| 4 | 日志记录(Serilog.*) |
| 5 | 其他包 |
命令
| 操作 | 命令 |
|---|---|
| 更新指定包 | dotnet add package <name> --version <ver> |
| 更新所有包 | dotnet outdated --upgrade |
阶段 6:还原并构建
命令
| 步骤 | 命令 |
|---|---|
| 还原 | dotnet restore |
| 构建 | dotnet build --configuration Release |
| 测试 | dotnet test |
失败时
- 根据错误信息确定失败的包
- 在 Context7/Ref 中搜索迁移指南
- 如果仍未解决:回退包版本并继续
第 7 阶段:报告结果
报告结构
| 字段 | 说明 |
|---|---|
| solution | 解决方案路径 |
| projects[] | 已更新的项目 |
| duration | 总耗时 |
| upgrades[] | 已应用的升级 |
| buildVerification | PASSED 或 FAILED |
| testResults | X 项通过,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