Skillshub nuget-manager
Manage NuGet packages in .NET projects/solutions. Use this skill when adding, removing, or updating NuGet package versions. It enforces using `dotnet` CLI for package management and provides strict procedures for direct file edits only when updating versions.
install
source · Clone the upstream repo
git clone https://github.com/ComeOnOliver/skillshub
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/ComeOnOliver/skillshub "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/github/awesome-copilot/nuget-manager" ~/.claude/skills/comeonoliver-skillshub-nuget-manager && rm -rf "$T"
manifest:
skills/github/awesome-copilot/nuget-manager/SKILL.mdsource content
NuGet Manager
Overview
This skill ensures consistent and safe management of NuGet packages across .NET projects. It prioritizes using the
dotnet CLI to maintain project integrity and enforces a strict verification and restoration workflow for version updates.
Prerequisites
- .NET SDK installed (typically .NET 8.0 SDK or later, or a version compatible with the target solution).
CLI available on yourdotnet
.PATH
(JSON processor) OR PowerShell (for version verification usingjq
).dotnet package search
Core Rules
- NEVER directly edit
,.csproj
, or.props
files to add or remove packages. Always useDirectory.Packages.props
anddotnet add package
commands.dotnet remove package - DIRECT EDITING is ONLY permitted for changing versions of existing packages.
- VERSION UPDATES must follow the mandatory workflow:
- Verify the target version exists on NuGet.
- Determine if versions are managed per-project (
) or centrally (.csproj
).Directory.Packages.props - Update the version string in the appropriate file.
- Immediately run
to verify compatibility.dotnet restore
Workflows
Adding a Package
Use
dotnet add [<PROJECT>] package <PACKAGE_NAME> [--version <VERSION>].
Example: dotnet add src/MyProject/MyProject.csproj package Newtonsoft.Json
Removing a Package
Use
dotnet remove [<PROJECT>] package <PACKAGE_NAME>.
Example: dotnet remove src/MyProject/MyProject.csproj package Newtonsoft.Json
Updating Package Versions
When updating a version, follow these steps:
-
Verify Version Existence: Check if the version exists using the
command with exact match and JSON formatting. Usingdotnet package search
:jq
Using PowerShell:dotnet package search <PACKAGE_NAME> --exact-match --format json | jq -e '.searchResult[].packages[] | select(.version == "<VERSION>")'(dotnet package search <PACKAGE_NAME> --exact-match --format json | ConvertFrom-Json).searchResult.packages | Where-Object { $_.version -eq "<VERSION>" } -
Determine Version Management:
- Search for
in the solution root. If present, versions should be managed there viaDirectory.Packages.props
.<PackageVersion Include="Package.Name" Version="1.2.3" /> - If absent, check individual
files for.csproj
.<PackageReference Include="Package.Name" Version="1.2.3" />
- Search for
-
Apply Changes: Modify the identified file with the new version string.
-
Verify Stability: Run
on the project or solution. If errors occur, revert the change and investigate.dotnet restore
Examples
User: "Add Serilog to the WebApi project"
Action: Execute
dotnet add src/WebApi/WebApi.csproj package Serilog.
User: "Update Newtonsoft.Json to 13.0.3 in the whole solution"
Action:
- Verify 13.0.3 exists:
(and parse output to confirm "13.0.3" is present).dotnet package search Newtonsoft.Json --exact-match --format json - Find where it's defined (e.g.,
).Directory.Packages.props - Edit the file to update the version.
- Run
.dotnet restore