All skills
github avatar

/nuget-manager

@6e801aa official
by githubgithub/awesome-copilot40k stars
5,040

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.

Use this Skill: https://skilld.dev/gh/github/awesome-copilot/nuget-manager

This session only. Nothing lands on disk.

SKILL.md

≈69 tokens always: the name and description. ≈779 when used: this file.

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).
  • dotnet CLI available on your PATH.
  • jq (JSON processor) OR PowerShell (for version verification using dotnet package search).

Core Rules

  1. NEVER directly edit .csproj, .props, or Directory.Packages.props files to add or remove packages. Always use dotnet add package and dotnet remove package commands.
  2. DIRECT EDITING is ONLY permitted for changing versions of existing packages.
  3. VERSION UPDATES must follow the mandatory workflow:
    • Verify the target version exists on NuGet.
    • Determine if versions are managed per-project (.csproj) or centrally (Directory.Packages.props).
    • Update the version string in the appropriate file.
    • Immediately run dotnet restore to verify compatibility.

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:

  1. Verify Version Existence: Check if the version exists using the dotnet package search command with exact match and JSON formatting. Using jq: dotnet package search <PACKAGE_NAME> --exact-match --format json | jq -e '.searchResult[].packages[] | select(.version == "<VERSION>")' Using PowerShell: (dotnet package search <PACKAGE_NAME> --exact-match --format json | ConvertFrom-Json).searchResult.packages | Where-Object { $_.version -eq "<VERSION>" }

  2. Determine Version Management:

    • Search for Directory.Packages.props in the solution root. If present, versions should be managed there via <PackageVersion Include="Package.Name" Version="1.2.3" />.
    • If absent, check individual .csproj files for <PackageReference Include="Package.Name" Version="1.2.3" />.
  3. Apply Changes: Modify the identified file with the new version string.

  4. Verify Stability: Run dotnet restore on the project or solution. If errors occur, revert the change and investigate.

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:

  1. Verify 13.0.3 exists: dotnet package search Newtonsoft.Json --exact-match --format json (and parse output to confirm "13.0.3" is present).
  2. Find where it's defined (e.g., Directory.Packages.props).
  3. Edit the file to update the version.
  4. Run dotnet restore.

Source: SKILL.md on GitHub

2 warnings17d5 checks · Risk SAFE
  • Gen Agent Trust Hub17d

    This skill facilitates NuGet package management using the dotnet CLI. While it performs standard development tasks, it processes external data such as package names and file contents without explicit sanitization, which is a common pattern for development-oriented tools.

  • Socket17d

    No alerts

  • Snyk17d

    Risk: MEDIUM · 1 issue

  • Runlayer7mo

    1/1 file flagged

  • ZeroLeaks5mo

    Score: 93/100 · 2 sections analyzed

Signed by skilld at 6e801aa. This ties the file your Agent reads to that commit on GitHub. It does not review the instructions.

Last checked against GitHub 18 hours ago.

Activeupdated 9 months ago
  • CLI
  • nuget
  • dotnet
  • package-management
  • csproj
  • net
  • dependencies

README badge

README badge for github/awesome-copilot/nuget-manager

Manages NuGet package add, remove, and update operations in .NET projects using the `dotnet` CLI, with a strict workflow for version updates that includes verification and restoration. Enforces command-line workflows for package operations and permits direct file edits only when changing existing package versions in `.csproj` or `Directory.Packages.props` files.

Generated from the current SKILL.md.

Can I directly edit .csproj files to add or remove packages?
No. Always use `dotnet add package` and `dotnet remove package` commands. Direct file editing is only permitted when changing versions of existing packages.
What happens if I update a package version and dotnet restore fails?
You must revert the change and investigate the compatibility issue. The skill enforces running `dotnet restore` immediately after any version update to verify stability.
How does this skill handle centralized version management?
It checks for `Directory.Packages.props` in the solution root. If present, versions are managed centrally there; otherwise, they're managed per-project in individual `.csproj` files.
What prerequisites are needed to use this skill?
You need .NET SDK (typically 8.0 or later) with `dotnet` CLI on your PATH, plus either `jq` or PowerShell for version verification with `dotnet package search`.

Generated from the current SKILL.md. These answers refresh after source changes.