Update all outdated NuGet packages in the solution using dotnet-outdated. Handles tool installation, discovery, and safe update workflow with restore verification.
Use this skill to update all outdated NuGet packages across the entire solution using the dotnet-outdated tool. It ensures tools are installed, versions verified, and dotnet restore confirms compatibility after updates.
dotnet CLI available on PATH.nuget.config).develop).nuget, packages, outdated, update, upgrade, bump, versions, dotnet-outdated
develop and pull the latest state.chore/update-packages-<date>.Run once per machine (or verify it is already installed):
dotnet tool install --global dotnet-outdated-tool
If already installed, update the tool itself to the latest version:
dotnet tool update --global dotnet-outdated-tool
Navigate to the solution root and list all outdated packages without applying changes:
dotnet outdated backend.slnx
Pinned packages – do not upgrade beyond the listed major version regardless of instructions:
Package Max allowed version MassTransit.*8.x.x
Review the output. Note packages that are:
Default behavior: patch and minor updates only.
Major version upgrades must never be applied unless the user explicitly requests them.
dotnet outdated backend.slnx --upgrade --version-lock Major
Only run this when the user has explicitly named the package and the target major version:
dotnet outdated backend.slnx --upgrade --include <PackageName>
Only run this when the user has explicitly requested a full upgrade across all major versions:
dotnet outdated backend.slnx --upgrade
Important: This project uses Central Package Management (
Directory.Packages.props).dotnet-outdatedrespects CPM and updates versions in that file. Verify thatDirectory.Packages.propswas modified after the upgrade step.
After upgrades are applied, run a full restore to confirm no version conflicts:
dotnet restore backend.slnx
If restore fails:
Directory.Packages.props to its previous value.dotnet restore until clean.After a successful restore, confirm the solution still builds:
dotnet build backend.slnx --no-restore
Fix any compilation errors introduced by API changes in updated packages before proceeding.
Use a Conventional Commit message, e.g.:
chore(deps): update NuGet packages to latest versions
If updating a single notable package, include it in the scope:
chore(deps): update MassTransit to 8.x
main.dotnet restore and dotnet build after updates.Directory.Packages.props to bump versions during this workflow – let dotnet-outdated --upgrade handle it.Directory.Packages.props.dotnet restore completes without errors.dotnet build completes without errors.develop with a summary of updated packages.37:["$","$L3e",null,{"content":"$3f","frontMatter":{"name":"update-packages","description":"Update all outdated NuGet packages in the solution using dotnet-outdated. Handles tool installation, discovery, and safe update workflow with restore verification."}}]