mcpField
L
ln-712-nuget-upgrader

ln-712-nuget-upgrader

github.com/levnikolaevich開発58455 回インストール2 日前に更新
リポジトリ

ln-712-nuget-upgrader について

.NET プロジェクトを保守する開発者向けの NuGet パッケージ更新スキルです。脆弱性や古い依存関係を監査し、メジャーバージョンの破壊的変更を特定したうえで、ビルドとテストで更新を検証します。

主な機能

  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 リポジトリのルートからの相対パスです。CWD に見つからない場合は、この SKILL.md ディレクトリを探し、1 つ上の階層をリポジトリのルートとしてください。

ln-712-nuget-upgrader

タイプ: L3 ワーカー
カテゴリ: 7XX プロジェクトのブートストラップ
親: ln-710-dependency-upgrader

破壊的変更を自動検出して移行しながら、.NET の NuGet パッケージをアップグレードします。


概要

項目詳細
入力ソリューション/プロジェクトのパス
出力更新された .csproj ファイル、移行レポート
サポート対象.NET 6、7、8、9、10

ワークフロー

視覚的なワークフローは diagram.html を参照してください。

フェーズ: 事前チェック → プロジェクトの検索 → セキュリティ監査 → 古いパッケージの確認 → 破壊的変更の特定 → アップグレードの適用 → 復元とビルド → レポート


フェーズ 0:事前チェック

チェック項目必須見つからない場合の対応
.csproj ファイルはいアップグレードを中止
.sln ファイルいいえ代わりに csproj の検出を使用

ワーカーは、コーディネーター(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:破壊的変更の特定

検出
  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_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 > Framework > EF Core > その他)
  • dotnet restore、dotnet build、dotnet test がすべて成功
  • 更新されたプロジェクト、適用されたアップグレード、ビルド/テストのステータスを含むレポートを返却済み

バージョン: 1.1.0 最終更新日: 2026-01-10

コメント