mcpField
L
ln-822-nuget-upgrader

ln-822-nuget-upgrader

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

关于 ln-822-nuget-upgrader

用于升级 .NET 项目中 NuGet 依赖的技能。它会审计依赖、检查过时版本和破坏性变更,应用更新后执行还原、构建、测试并报告结果。

主要功能

  1. 01发现解决方案或目录中的项目
  2. 02审计易受攻击及过时的依赖
  3. 03检查破坏性变更和迁移指南
  4. 04按优先级应用包更新
  5. 05还原、构建并测试项目

适用场景

  1. 01更新 .NET 解决方案中的 NuGet 依赖
  2. 02升级前检查包漏洞
  3. 03通过还原、构建和测试验证升级

MCP 相关

应用升级前会使用 MCP 文档搜索工具确认迁移指南。

安装

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

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

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

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

references/
breaking_changes_patterns.md
coordinator_summary_contract.md
dotnet_version_matrix.md

详细介绍

路径: 文件路径(references/、../ln-*)均相对于此技能目录。

ln-822-nuget-upgrader

类型: L3 Worker 类别: 8XX 优化

升级 .NET NuGet 包,自动检测破坏性变更并执行迁移。


概述

方面详情
输入解决方案或项目路径,以及升级策略
输出更新后的 .csproj 文件和机器可读的依赖项升级摘要
支持.NET 6、7、8、9、10

工作流

阶段: 预检 -> 查找项目 -> 安全审计 -> 检查过时包 -> 识别破坏性变更 -> 应用升级 -> 还原并构建 -> 报告


阶段 0:预检

检查必需缺失时的操作
.csproj 文件是阻止升级
.sln 文件否回退到递归查找项目
dotnet CLI是阻止升级
工作区基线安全是在托管运行中,协调器已做好准备;在独立运行中,在本地保护回滚能力
运行时协调

托管运行会从 ln-820 获取确定性的 runId 和准确的 summaryArtifactPath。 独立运行仍受支持;如果省略运行时参数,则在返回前生成一个作用域为该次独立运行的制品。


阶段 1:查找项目

方法命令
查找 .csproj 文件Get-ChildItem -Recurse -Filter *.csproj
读取解决方案成员dotnet sln list

阶段 2:安全审计

检查命令
易受攻击的包dotnet list package --vulnerable
过时的包dotnet list package --outdated

操作:

严重程度操作
严重阻止并报告
高警告并继续
中/低仅记录

阶段 3:检查过时包

步骤命令
安装辅助工具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 -> 7Minimal API 集成变更

用于搜索迁移信息的 MCP 工具

优先级工具使用时机
1mcp__context7__query-docs首选,用于查询库文档
2mcp__Ref__ref_search_documentation官方 Microsoft 文档
3WebSearch最新信息和社区修复方案

应用迁移前,使用工具链确认迁移方案。


阶段 5:应用升级

优先级顺序:

  1. SDK 或运行时包
  2. 框架包
  3. EF Core
  4. 日志记录包
  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[]已应用的升级
verification还原/构建/测试结论
warnings[]不阻止流程的问题
artifact_path持久化工作器报告路径(如已写入)

配置

Options:
  upgradeType: major          # major | minor | patch
  auditLevel: high
  minimumReleaseAge: 14
  includePrerelease: false
  targetFramework: net10.0
  runTests: true
  runBuild: true

错误处理

错误原因解决方案
CS0246缺少类型搜索替代 API
NU1605检测到降级检查包约束
构建失败重大变更应用迁移指南,或回滚导致问题的包

参考资料


运行时摘要产物

必须阅读: 加载 references/coordinator_summary_contract.md

生成 dependency-worker 摘要信封。

托管模式:

  • ln-820 传入确定性的 runId 和准确的 summaryArtifactPath
  • 将摘要写入提供的 summaryArtifactPath

独立模式:

  • 省略 runId 和 summaryArtifactPath
  • 写入 .hex-skills/runtime-artifacts/runs/{run_id}/dependency-worker/ln-822--{identifier}.json

监控(2.1.98+): 对于预计超过 30 秒的还原/构建/测试命令,使用 Monitor。备用方案:Bash(run_in_background=true)。

完成标准

  • 已发现所有目标 .csproj 文件
  • 已完成 NuGet 依赖项的安全审计
  • 已识别过期包
  • 已结合模式和当前文档检查重大变更
  • 已按安全顺序应用升级,并在失败时回滚
  • dotnet restore、dotnet build 和所需测试均成功
  • 已将 dependency-worker 摘要产物写入托管或独立路径

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

评论

支持 Markdown