mcpField
N
nuget-manager

nuget-manager

github.com/github開発40.5k14.4k 回インストール今日更新
リポジトリ

nuget-manager について

.NET プロジェクトで NuGet パッケージを一貫して管理するスキルです。パッケージ変更には dotnet コマンドラインを優先し、バージョン更新時は存在確認と restore を必須とします。

主な機能

  1. 01dotnet コマンドラインでの追加
  2. 02dotnet コマンドラインでの削除
  3. 03NuGet 上のバージョン確認
  4. 04バージョン管理場所の特定
  5. 05更新後の dotnet restore

活用シーン

  1. 01.NET プロジェクトへの依存関係追加
  2. 02NuGet パッケージの安全な削除
  3. 03パッケージバージョンの更新と検証

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/github/awesome-copilot --skill nuget-manager

インストール後、Claude Code で/nuget-managerを入力して読み込まれたか確認します。

詳細

NuGet マネージャー

概要

このスキルは、.NET プロジェクト全体にわたって NuGet パッケージを一貫性をもって安全に管理することを保証します。プロジェクトの整合性を維持するために dotnet CLI の使用を優先し、バージョン更新に対して厳格な検証と復元のワークフローを強制します。

前提条件

  • .NET SDK がインストールされていること(通常は .NET 8.0 SDK 以降、または対象ソリューションと互換性のあるバージョン)。
  • dotnet CLI が PATH から利用可能であること。
  • jq(JSON プロセッサ)または PowerShell(dotnet package search を使用したバージョン検証用)。

コアルール

  1. パッケージを追加または削除するために、.csproj、.props、または Directory.Packages.props ファイルを直接編集しては決してなりません。常に dotnet add package および dotnet remove package コマンドを使用してください。
  2. 直接編集が許可されるのは、既存パッケージのバージョン変更の場合のみです。
  3. バージョン更新は、必須のワークフローに従わなければなりません:
    • 対象バージョンが NuGet に存在することを検証します。
    • バージョンがプロジェクト単位(.csproj)で管理されているか、一元管理(Directory.Packages.props)されているかを判断します。
    • 適切なファイル内のバージョン文字列を更新します。
    • 互換性を検証するために、直ちに dotnet restore を実行します。

ワークフロー

パッケージの追加

dotnet add [<PROJECT>] package <PACKAGE_NAME> [--version <VERSION>] を使用します。 例: dotnet add src/MyProject/MyProject.csproj package Newtonsoft.Json

パッケージの削除

dotnet remove [<PROJECT>] package <PACKAGE_NAME> を使用します。 例: dotnet remove src/MyProject/MyProject.csproj package Newtonsoft.Json

パッケージバージョンの更新

バージョンを更新する場合は、次の手順に従います:

  1. バージョンの存在を検証: 完全一致および JSON フォーマットで dotnet package search コマンドを使用して、バージョンが存在するか確認します。 jq を使用する場合: dotnet package search <PACKAGE_NAME> --exact-match --format json | jq -e '.searchResult[].packages[] | select(.version == "<VERSION>")' PowerShell を使用する場合: (dotnet package search <PACKAGE_NAME> --exact-match --format json | ConvertFrom-Json).searchResult.packages | Where-Object { $_.version -eq "<VERSION>" }

  2. バージョン管理方法の判断:

    • ソリューションルートで Directory.Packages.props を検索します。存在する場合、バージョンはそこにある <PackageVersion Include="Package.Name" Version="1.2.3" /> を介して管理すべきです。
    • 存在しない場合は、個々の .csproj ファイルで <PackageReference Include="Package.Name" Version="1.2.3" /> を確認します。
  3. 変更の適用: 特定したファイルを新しいバージョン文字列に変更します。

  4. 安定性の検証: プロジェクトまたはソリューションで dotnet restore を実行します。エラーが発生した場合は、変更を元に戻して調査します。

例

ユーザー: 「WebApi プロジェクトに Serilog を追加して」

アクション: dotnet add src/WebApi/WebApi.csproj package Serilog を実行します。

ユーザー: 「ソリューション全体で Newtonsoft.Json を 13.0.3 に更新して」

アクション:

  1. 13.0.3 が存在することを検証: dotnet package search Newtonsoft.Json --exact-match --format json(そして出力を解析して「13.0.3」が含まれていることを確認)。
  2. どこで定義されているかを見つける(例: Directory.Packages.props)。
  3. ファイルを編集してバージョンを更新。
  4. dotnet restore を実行。

コメント