.NET Package Updates
Note: This skill requires .NET 10 SDK or later. The
dotnet package updatecommand 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
- •
List outdated packages (including transitive) using:
bashdotnet package list --outdated --include-transitive --format json
- •
Check for empty results - If no outdated packages found, inform the user and stop
- •
Parse output to identify:
- •Projects with outdated packages
- •Whether each package is direct or transitive
- •
Analyze project dependencies by reading
<ProjectReference>elements in each csproj - •
Present findings in a readable format showing project, package name, current → latest version
- •
Confirm with user before making changes - ask which option:
- •All packages
- •Specific packages by name
- •Cancel
- •
Update packages per project with
--projectparameter:- •Update leaf projects first (no dependencies)
- •Then update dependent projects
- •Independent branches can run in parallel
bashdotnet package update <package> --project <path-to-csproj>
- •
Verify with
dotnet build - •
If build fails, ask user:
- •Fix automatically (review errors, apply fixes)
- •Fix manually (show errors, let user handle)
- •
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 listfails: Check if we're in a .NET project directory - •If
dotnet package updatefails for a specific package: Report it and continue with others - •If build fails after updates:
- •Parse the build errors
- •Ask user: fix automatically or manually?
- •If automatic: analyze errors and apply fixes
- •Re-run build to verify
Notes
- •Requires .NET 10+ SDK for
dotnet package update - •Always use
--projectparameter 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