migrate-dotnet8-to-dotnet9

Upgrades .NET 8 projects to .NET 9 and resolves breaking changes.

1|Updated May 21, 2026
One-click install
npx skills add https://github.com/1k-off/umbraco-observability-playground --skill migrate-dotnet8-to-dotnet9-1k-off
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: migrate-dotnet8-to-dotnet9
Source: https://github.com/1k-off/umbraco-observability-playground/tree/main/.agents/skills/migrate-dotnet8-to-dotnet9
Command: npx skills add https://github.com/1k-off/umbraco-observability-playground --skill migrate-dotnet8-to-dotnet9-1k-off

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes references (resource) components.

What problem does it solve?

This Skill helps you upgrade a .NET 8 project to .NET 9 while systematically addressing breaking changes that can cause build failures, new warnings, runtime exceptions, or behavioral regressions.

Core Features & Use Cases

  • Target Framework upgrade + dependency alignment: Updates each project’s TargetFramework/TargetFrameworks to net9.0 (or adds net9.0 for multi-targeting) and brings related Microsoft package references to the appropriate 9.0.x versions.
  • Breaking-change resolution with focused fixes: Guides remediation for common .NET 9 and C# 13 issues such as params ReadOnlySpan overload resolution problems, SYSLIB0054–SYSLIB0057 obsoletions, BinaryFormatter removal, HttpClientFactory handler changes, and EF Core 9 migration pitfalls.
  • Behavioral-change verification and mitigation: Helps you review high-impact runtime and framework behavioral changes (including EF Core pending model changes and explicit transaction exceptions, DI validation defaults in ASP.NET Core development, and saturating float-to-integer conversions) and validate the result with clean builds and tests.

Quick Start

Use the skill to migrate a solution by telling it the path to your .sln file and your preferred build and test commands so it can upgrade to net9.0 and iterate through breaking changes until the project builds and tests cleanly.

Frequently Asked Questions about migrate-dotnet8-to-dotnet9

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I migrate a .NET 8 project to .NET 9 without breaking my build?

To migrate .NET 8 to .NET 9, update your target frameworks to net9.0, align Microsoft package references to 9.0.x, and resolve source, binary, and behavioral breaking changes using reference documents for clean builds and tests.

What are the common breaking changes when upgrading to .NET 9 and C# 13?

Common .NET 9 and C# 13 breaking changes include params ReadOnlySpan overload resolution issues, SYSLIB0054–SYSLIB0057 obsoletions, BinaryFormatter removal, HttpClientFactory handler behavior changes, and EF Core 9 migration pitfalls.

How do I resolve EF Core 9 migration and Cosmos DB behavioral changes?

Resolving EF Core 9 migration and Cosmos DB changes involves reviewing pending model changes, handling explicit transaction exceptions, and applying targeted code fixes to ensure behavioral compatibility during the .NET 9 upgrade.

Does upgrading to .NET 9 affect ASP.NET Core dependency injection and middleware?

Upgrading to .NET 9 affects ASP.NET Core by changing dependency injection validation defaults in development environments and altering middleware behaviors, requiring focused configuration adjustments to maintain runtime stability.

What should I check after resolving .NET 9 target framework retargeting issues?

After .NET 9 target framework retargeting, verify clean builds and execute tests with smoke checks that specifically cover known breaking points like saturating float-to-integer conversions and serialization updates.

Can I use this .NET 9 upgrade process for multi-targeting projects?

Yes, the .NET 9 upgrade process supports multi-targeting by adding net9.0 to your existing TargetFrameworks and systematically upgrading related dependencies while resolving breaking changes across all targeted frameworks.