CPMigrate
Package updates with rollback

Update NuGet packages without gambling on a broken branch

CPMigrate treats package updates as a workflow, not just a version bump. You can preview changes, include transitive dependencies, run tests after applying them, and roll back automatically if verification fails.

cpmigrate --update-packages --dry-run
cpmigrate --update-packages --transitive
cpmigrate --update-packages --include-prerelease
cpmigrate --update-packages --bisect

Preview first

See direct and transitive updates before mutating your props file.

Verify in place

Run dotnet restore and dotnet test as part of the update flow.

Roll back automatically

If tests fail, CPMigrate restores the previous state instead of leaving half-applied changes behind.

Or keep what works

--bisect narrows a failing update set down to the packages actually at fault, applies everything else, and names the ones it held back — so one bad dependency no longer costs you the whole batch.