What .NET Versions Are Supported by dotnet/skills: From .NET 8 LTS to .NET 11 Preview

The dotnet/skills repository officially supports .NET 8 (LTS), .NET 9, .NET 10, and .NET 11 (preview), with upgrade pathways and feature-specific skills that operate on any .NET SDK from version 8 onward.

The dotnet/skills repository provides a collection of upgrade plugins and language server protocol (LSP) skills designed for modern .NET development. These tools target migration scenarios and new API adoption across the current LTS release and subsequent preview versions, enabling automated project upgrades and feature integration.

Supported .NET Versions Overview

The repository organizes its capabilities around upgrade pathways and feature-specific skills. The core supported versions include:

  • .NET 8 (LTS) — The baseline for many upgrade scenarios
  • .NET 9 — Full support for migration and feature skills
  • .NET 10 — Supported as both a source and target for upgrades
  • .NET 11 (preview) — Preview-only API support and migration targets

Earlier LTS releases such as .NET 6 and .NET 7 remain implicitly compatible because the base LSP skill (plugins/dotnet) works with any locally installed SDK, and test fixtures throughout the repository continue to target these versions.

Upgrade Pathways and Skill Organization

The repository structure reflects specific migration routes between major versions. Each pathway is implemented as a discrete skill containing transformation logic, project file updates, and API migration rules.

.NET 8 LTS Baseline

.NET 8 serves as the foundational LTS release for the upgrade ecosystem. The skill migrate-dotnet8-to-dotnet9 establishes patterns for project modernization starting from this long-term support version.

Test fixtures anchoring this baseline reside in paths such as tests/dotnet-upgrade/migrate-dotnet8-to-dotnet9/, where various *.csproj files demonstrate .NET 8 compatibility and provide regression coverage for upgrade operations.

.NET 9 and .NET 10 Migration Paths

The repository provides explicit migration support from .NET 9 to .NET 10 through the skill defined in plugins/dotnet-upgrade/skills/migrate-dotnet9-to-dotnet10/SKILL.md. This skill handles project file SDK updates, package reference migrations, and breaking change accommodations.

.NET 10 functions as both a migration target and a source for subsequent upgrades, with the repository containing logic for moving .NET 10 projects toward .NET 11 preview releases.

.NET 11 Preview Support

The plugins/dotnet11 directory contains skills targeting preview SDK features unavailable in stable releases. These skills expose new APIs such as JsonNamingPolicy.PascalCase via the system-text-json-net11 skill.

The documentation in plugins/dotnet11/README.md outlines these preview capabilities, while individual skill definitions like plugins/dotnet11/skills/system-text-json-net11/SKILL.md provide specific implementation details for adopting .NET 11 features before general availability.

Running Skills Across .NET Versions

You can invoke skills from the command line using the Copilot CLI or Claude Code. The following examples demonstrate upgrade operations across the supported version matrix:


# Upgrade a .NET 9 console app to .NET 10

plugin install dotnet-upgrade@dotnet-agent-skills
skill run dotnet-upgrade.migrate-dotnet9-to-dotnet10 \
  --project ./MyApp.csproj \
  --target-sdk 10.0

# Enable a .NET 11 preview feature (e.g., Pascal-case JSON naming)

plugin install dotnet11@dotnet-agent-skills
skill run dotnet11.system-text-json-net11 \
  --project ./MyWebApi.csproj \
  --use-pascal-case true

Both commands rely on the specific skill definitions found in the repository source code. The dotnet-upgrade.migrate-dotnet9-to-dotnet10 skill maps to plugins/dotnet-upgrade/skills/migrate-dotnet9-to-dotnet10/SKILL.md, while the JSON naming skill references plugins/dotnet11/skills/system-text-json-net11/SKILL.md.

Key Files and Configuration

Understanding the repository layout helps identify which components target specific .NET versions:

Summary

  • The dotnet/skills repository supports .NET 8 (LTS) through .NET 11 (preview) with explicit upgrade pathways
  • Upgrade skills are organized as discrete plugins targeting specific version migrations (8→9, 9→10, 10→11)
  • Earlier LTS releases (.NET 6, 7) remain compatible through the base plugins/dotnet LSP skill
  • Preview features are accessible via the dotnet11 plugin for early adoption of .NET 11 APIs
  • All skills operate against locally installed SDKs, requiring the target version to be present on the build machine

Frequently Asked Questions

Does dotnet/skills support .NET 7 or earlier versions?

Yes, but implicitly. The base LSP skill in plugins/dotnet/ works with any installed .NET SDK, and the repository contains test fixtures targeting earlier LTS releases. However, explicit upgrade skills focus on .NET 8 and later, as these represent the currently supported lifecycle for Microsoft migration tooling.

How do I upgrade a project from .NET 9 to .NET 10 using dotnet/skills?

Install the dotnet-upgrade plugin and execute the specific migration skill: skill run dotnet-upgrade.migrate-dotnet9-to-dotnet10 --project ./MyApp.csproj --target-sdk 10.0. This skill definition is located at plugins/dotnet-upgrade/skills/migrate-dotnet9-to-dotnet10/SKILL.md and handles package updates, project file modifications, and API migration.

Can I use dotnet/skills to experiment with .NET 11 preview features?

Yes. Install the dotnet11@dotnet-agent-skills plugin to access preview-specific skills such as system-text-json-net11. These skills target APIs introduced in the .NET 11 preview SDK, documented in plugins/dotnet11/README.md, allowing early adoption of features like new JSON serialization options before general availability.

What is the minimum .NET version required to run dotnet/skills?

The repository requires .NET 8 or later for explicit upgrade scenarios, though the core analysis engine functions with any locally installed SDK. The migrate-dotnet8-to-dotnet9 skill establishes .NET 8 as the practical baseline for structured upgrade operations, with subsequent versions building upon this foundation.

Have a question about this repo?

These articles cover the highlights, but your codebase questions are specific. Give your agent direct access to the source. Share this with your agent to get started:

Share the following with your agent to get started:
curl -s "https://instagit.com/install.md"

Works with
Claude Codex Cursor VS Code OpenClaw Any MCP Client

Maintain an open-source project? Get it listed too →