nuget-manager について
.NET プロジェクトで NuGet パッケージを一貫して管理するスキルです。パッケージ変更には dotnet コマンドラインを優先し、バージョン更新時は存在確認と restore を必須とします。
主な機能
- 01dotnet コマンドラインでの追加
- 02dotnet コマンドラインでの削除
- 03NuGet 上のバージョン確認
- 04バージョン管理場所の特定
- 05更新後の dotnet restore
活用シーン
- 01.NET プロジェクトへの依存関係追加
- 02NuGet パッケージの安全な削除
- 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 以降、または対象ソリューションと互換性のあるバージョン)。
dotnetCLI がPATHから利用可能であること。jq(JSON プロセッサ)または PowerShell(dotnet package searchを使用したバージョン検証用)。
コアルール
- パッケージを追加または削除するために、
.csproj、.props、またはDirectory.Packages.propsファイルを直接編集しては決してなりません。常にdotnet add packageおよびdotnet remove packageコマンドを使用してください。 - 直接編集が許可されるのは、既存パッケージのバージョン変更の場合のみです。
- バージョン更新は、必須のワークフローに従わなければなりません:
- 対象バージョンが 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
パッケージバージョンの更新
バージョンを更新する場合は、次の手順に従います:
-
バージョンの存在を検証: 完全一致および 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>" } -
バージョン管理方法の判断:
- ソリューションルートで
Directory.Packages.propsを検索します。存在する場合、バージョンはそこにある<PackageVersion Include="Package.Name" Version="1.2.3" />を介して管理すべきです。 - 存在しない場合は、個々の
.csprojファイルで<PackageReference Include="Package.Name" Version="1.2.3" />を確認します。
- ソリューションルートで
-
変更の適用: 特定したファイルを新しいバージョン文字列に変更します。
-
安定性の検証: プロジェクトまたはソリューションで
dotnet restoreを実行します。エラーが発生した場合は、変更を元に戻して調査します。
例
ユーザー: 「WebApi プロジェクトに Serilog を追加して」
アクション: dotnet add src/WebApi/WebApi.csproj package Serilog を実行します。
ユーザー: 「ソリューション全体で Newtonsoft.Json を 13.0.3 に更新して」
アクション:
- 13.0.3 が存在することを検証:
dotnet package search Newtonsoft.Json --exact-match --format json(そして出力を解析して「13.0.3」が含まれていることを確認)。 - どこで定義されているかを見つける(例:
Directory.Packages.props)。 - ファイルを編集してバージョンを更新。
dotnet restoreを実行。