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

> Explore supported .NET versions in dotnet/skills, including .NET 8 LTS to .NET 11 preview. Discover upgrade paths and features for .NET SDK 8.

- Repository: [.NET Platform/skills](https://github.com/dotnet/skills)
- Tags: support-policy
- Published: 2026-07-08

---

**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`](https://github.com/dotnet/skills/blob/main/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`](https://github.com/dotnet/skills/blob/main/plugins/dotnet11/README.md) outlines these preview capabilities, while individual skill definitions like [`plugins/dotnet11/skills/system-text-json-net11/SKILL.md`](https://github.com/dotnet/skills/blob/main/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:

```bash

# 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

```

```bash

# 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`](https://github.com/dotnet/skills/blob/main/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`](https://github.com/dotnet/skills/blob/main/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:

- **[`plugins/dotnet/README.md`](https://github.com/dotnet/skills/blob/main/plugins/dotnet/README.md)** — Documents the core LSP skill compatible with any installed .NET SDK
- **[`plugins/dotnet-upgrade/skills/migrate-dotnet9-to-dotnet10/SKILL.md`](https://github.com/dotnet/skills/blob/main/plugins/dotnet-upgrade/skills/migrate-dotnet9-to-dotnet10/SKILL.md)** — Defines the .NET 9 to 10 migration path
- **[`plugins/dotnet-upgrade/skills/migrate-dotnet8-to-dotnet9/SKILL.md`](https://github.com/dotnet/skills/blob/main/plugins/dotnet-upgrade/skills/migrate-dotnet8-to-dotnet9/SKILL.md)** — Covers the .NET 8 to 9 upgrade scenario
- **[`plugins/dotnet11/README.md`](https://github.com/dotnet/skills/blob/main/plugins/dotnet11/README.md)** — Highlights .NET 11 preview APIs and skill availability
- **`tests/dotnet-upgrade/migrate-dotnet8-to-dotnet9/**/*.csproj`** — Example project files establishing the .NET 8 baseline

## 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`](https://github.com/dotnet/skills/blob/main/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`](https://github.com/dotnet/skills/blob/main/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.