im5tu/dotnet-skills · Archived

dotnet-update-packages

Lists and updates outdated NuGet packages in .NET projects. Use when the user mentions updating packages, checking for outdated dependencies, or upgrading package versions.

First seen Feb 4, 2026

Installation

$ npx skills add im5tu/dotnet-skills --skill dotnet-update-packages

Stronger alternatives

This repository is archived — consider an actively maintained alternative.

Similar popular skills

Related neighbors and high-traction skills in the same topics — useful to compare before installing.

Also in this package

Other skills from im5tu/dotnet-skills.

npx skills add im5tu/dotnet-skills

Browse all from im5tu/dotnet-skills

More details

Agent compatibility

Declared targets from SKILL.md / docs. Unmarked agents are not listed — the skill may still install via the CLI.

Claude Code Not declared
Cursor Not declared
Codex Not declared
GitHub Copilot Not declared
Windsurf Not declared
Gemini CLI Not declared
Cline Not declared
OpenCode Not declared

Repository health

Stars 1
License MIT
Default branch main
Open issues 0
Status Archived

Skill metadata

Parsed from SKILL.md frontmatter.

Version1.0
LicenseMIT
Allowed toolsBash(dotnet:*) Read Glob AskUserQuestion
More metadata
author
Im5tu
version
1.0
repositoryUrl
https://github.com/im5tu/dotnet-skills

Package contents

Files included with this skill beyond the listing page.

  • skill md SKILL.md 3,226 B
  • docs SUMMARY.md 202 B

History

  1. First seen on skills.sh
  2. First recorded snapshot · 2 installs

SKILL.md

.NET Package Updates

Note: This skill requires .NET 10 SDK or later. The dotnet package update command does not exist in .NET 8-9.

When to Use

This skill applies when the user:

  • Asks about outdated NuGet packages
  • Wants to update dependencies in a .NET project
  • Mentions package version upgrades
  • Discusses dependency management in .NET

Workflow

  1. List outdated packages (including transitive) using:

``bash dotnet package list --outdated --include-transitive --format json ``

  1. Check for empty results - If no outdated packages found, inform the user and stop
  1. Parse output to identify:

- Projects with outdated packages - Whether each package is direct or transitive

  1. Analyze project dependencies by reading <ProjectReference> elements in each csproj
  1. Present findings in a readable format showing project, package name, current → latest version
  1. Confirm with user before making changes - ask which option:

- All packages - Specific packages by name - Cancel

  1. Update packages per project with --project parameter:

- Update leaf projects first (no dependencies) - Then update dependent projects - Independent branches can run in parallel ``bash dotnet package update <package> --project <path-to-csproj> ``

  1. Verify with dotnet build
  1. If build fails, ask user:

- Fix automatically (review errors, apply fixes) - Fix manually (show errors, let user handle)

  1. Report results - summarize what was updated and the final build status

Key Commands

Command Purpose
dotnet package list --outdated --include-transitive --format json List outdated packages (incl. transitive)
dotnet package update <name> --project <path> Update specific package in project
dotnet package update --project <path> Update all packages in project

Transitive vs Direct Packages

  • Direct: Explicitly in csproj. Update directly.
  • Transitive: Pulled in by dependencies. Marked [T] in output.

- To update: update the parent package, or add direct reference to pin version

Error Handling

  • If dotnet package list fails: Check if we're in a .NET project directory
  • If dotnet package update fails for a specific package: Report it and continue with others
  • If build fails after updates:

1. Parse the build errors 2. Ask user: fix automatically or manually? 3. If automatic: analyze errors and apply fixes 4. Re-run build to verify

Notes

  • Requires .NET 10+ SDK for dotnet package update
  • Always use --project parameter to update per-project
  • Update in dependency order: leaves first, then dependents
  • Always confirm with user before updating
  • Run build after updates to catch breaking changes