Guide

How to upgrade ASP.NET Zero without losing customizations

Quick answer. Treat the upgrade as a three-way merge between the old template, the new template and your code. Apply template changes only where you never edited, review every overlap by hand, validate with a real build and tests, and keep a rollback plan.

Why ASP.NET Zero upgrades are hard

  • You start from a generated template and then customize it, so your code and the vendor’s template diverge.
  • Each new template version changes the same files you edited, so plain text diffs bury meaningful conflicts in noise.
  • The longer you wait, the more versions pile up and the larger the single jump becomes.

The three-way merge model

  • Base: the template version you started from. Theirs: the target template. Yours: your current code.
  • A change that exists only in Theirs can be applied safely. A change that exists in both is a conflict.
  • Comparing C# syntax trees rather than lines lets the merge reason about members, not whitespace.

A safe process

  • Create a branch from a green baseline and tag it.
  • Update packages and verify with a real restore and build.
  • Merge template changes; resolve each conflict deliberately and write down why.
  • Review EF Core migrations before they touch any database.
  • Run the full test suite and a vulnerability scan, then open a pull request.

Where UpgradePilot fits

  • UpgradePilot automates the steps above — template download, AST comparison, semantic merge, package upgrades, migration checks, validation and the pull request.
  • It leaves the judgment calls to you: every conflict is flagged rather than silently resolved.
  • See the ASP.NET Zero guide for what runs and what you still review.

Next steps

See the technology guides, the documentation hub, or request a free upgrade assessment.

Want a second pair of eyes on your upgrade?

Tell us your stack and current version. We’ll reply with what’s involved and whether the free app or Cloud fits.