.NET 10をWindowsで使う手順|VS 2022で選択できない理由とVS 2026・SDKの導入

.NET 10は2025年11月11日に正式リリースされたLTSです。Windowsでnet10.0をVisual Studioの正式サポート対象として開発するには、Visual Studio 2026(18.0以降)を使います。VS 2022で.NET 10が選べないときは、SDKがない問題とIDEの対応範囲を分けて確認してください。通常の新規導入で古いPreview/RCを選ぶ必要はありません。リリースとサポート期間は公式サポートポリシーで確認できます。

目次

VS 2022で.NET 10が選択できないときの結論

  • net10.0の正式なIDEサポートはVisual Studio 2026(18.0以降)です。VS 2022の更新やPreviewチャネルへの変更だけで、この対象範囲は変わりません。
  • SDKとターゲットフレームワークは別です。.NET 10 SDKが入っていても、古いVisual Studioでnet10.0を正式サポートとして使えるという意味ではありません。
  • IDEを使わず検証するなら.NET 10 SDK+dotnet CLIでプロジェクト作成・ビルド・実行が可能です。Runtimeだけでは開発用のSDKを代替できません。

対応範囲は.NET SDK・MSBuild・Visual Studioの公式バージョン表を参照してください。旧IDEで必ず同じエラーになるとは限らず、警告やテンプレートの非表示として現れる場合もあります。

背景とバージョン要件の整理

.NET 10は正式版で、LTSのサポート終了は2028年11月14日です。Visual Studio 2026の通常の開発環境を選び、インストールしたIDEに同梱されるSDKを使う構成が基本です。特定のSDKの機能帯を単体導入した場合は、IDEとの対応表も確認してください。Windowsへの公式インストール手順ではSDKとRuntimeの違い、WindowsとCPUアーキテクチャの対応も案内されています。

バージョン相性早見表

構成net10.0の扱い
Visual Studio 2022(17.x).NET10の正式なIDEターゲットサポート外。SDKが検出されることとターゲット対応は別。
Visual Studio 2026(18.0以降)+対応SDKnet10.0の正式なIDEサポート対象。同梱SDKの利用が基本。
.NET10 SDK+dotnet CLICLIで作成・ビルド・実行できる。SDKの解決結果を作業フォルダーで確認。
.NET10 Runtimeのみアプリ実行用。dotnet new/buildに必要なSDKは別。

よくある迷い:SDKを入れればVS 2022で使える?

SDKを単体インストールしても、VS 2022でnet10.0を正式サポートするIDE開発環境にはなりません。CLIでの検証と、Visual Studioによるテンプレート・デバッグ・デザイナーのサポートは区別してください。IDEを使う場合はVS 2026で対象のワークロードを導入します。

なお、.NET 10 SDKを古いIDEで検出できないと一律に断定するのも正確ではありません。公式表では10.0.100 SDKはVS 17.14でnet9.0までを対象に利用できる組み合わせを示していますが、net10.0のIDEターゲットサポートは18.0以降です。

実践:インストールと切り替え・共存手順

パターンA:Visual Studio 2026を追加してIDEで開発

  1. Visual Studioの公式インストーラーでVisual Studio 2026を導入する。
  2. 作るアプリに応じて「.NETデスクトップ開発」または「ASP.NETとWeb開発」など必要なワークロードを選ぶ。
  3. 起動後、[ヘルプ]→[Microsoft Visual Studioのバージョン情報]で18.0以降か確認する。
  4. 新規の「コンソール アプリ」などで.NET 10を選び、ビルド・実行を確認する。

Visual Studioは異なるメジャーバージョンを並行インストールできます。既存プロジェクトの拡張機能・ワークロード・ビルド環境まで無影響と保証するものではないため、検証用コピーや別ブランチで動作を確認してください。正式な.NET10開発で、プレビューSDKの使用設定をオンにする必要はありません。

パターンB:SDK単体+CLIで確認

公式のWindowsインストール手順に従い、.NET10のSDKを導入します。WinGetを使う場合は次のIDです。インストール後に新しいターミナルを開いて確認します。

winget install --id Microsoft.DotNet.SDK.10 -e
dotnet --list-sdks
dotnet --info

複数SDKがある場合は、作業フォルダーでdotnet –versionを実行します。プロジェクトや上位フォルダーのglobal.jsonにより、別のSDKが選択される場合があります。SDKの一覧に10.0系があることだけで、今選ばれているSDKを判断しないでください。

「チャネル切り替え」の正しい理解

Visual Studio には「Current/Preview/LTSC などの アップデート チャネル」の概念があり、VS Installer の[…(もっと) > Update 設定 > チャネル]から切り替えられます。ただしこれは 「同じメジャー(v17 なら 17.x の範囲)」の更新経路を変える仕組みであり、v17 → v18(VS 2022 → VS 2026)の乗り換え手段ではありません。
したがって、VS 2022 を Preview チャネルにしても .NET 10 の IDE サポートは得られません。IDE で .NET 10 を使うには VS 2026(v18)系を別途導入してください。

よくあるエラーと対処

症状・エラー確認と対応
VS2022で.NET10が選択できない正式なnet10.0のIDE開発はVS2026 18.0以降へ。SDK単体導入とは区別する。
NETSDK1045:SDKがターゲットをサポートしないdotnet –versionと–infoを作業フォルダーで確認。古いSDKを選ぶglobal.jsonやPATH、x86/x64/Arm64の違いを確認。
NETSDK1013:TargetFrameworkを認識できないcsprojの綴りnet10.0と選択SDKを確認。
VS2026でも.NET10が表示されないIDEの更新、必要ワークロードとSDK、プロジェクト種類、global.jsonを確認する。

NETSDK1209などIDEバージョンに関するメッセージが出た場合は、全文とSDKの完全なバージョンを記録して対応表を確認します。同じSDKでも、CLIとIDEで結果が異なる場合があります。

安全に導入・運用するためのベストプラクティス

項目推奨対応
既存プロジェクトへの影響拡張機能やビルドタスクの未対応リスクあり。バックアップ必須・別マシン/VM/コンテナでの検証推奨。
共存インストールVS 2022(安定)と VS 2026を別インスタンスで共存。Installer で個別に追加・更新する。
SDK の固定global.json でプロジェクト単位の SDK バージョンを明示固定。CI とローカルの再現性を確保。
マルチターゲットnet9.0;net10.0 のように並記し、IDE 非対応環境では net9.0 を中心にビルドする運用が安全。
リリース時期.NET10は2025年11月11日にLTSとして正式リリース。公式サポートポリシーとSDK対応表を確認。
混同しやすい表記「Visual Studio 17.14 で含まれる」のような文言は v17 系の話。.NET 10 の IDE サポートは v18(VS 2026)系に整理された点に注意。

実用テクニック:.NET 10をCLIで検証するミニ手順

コンソール アプリ(PowerShell)

まだ存在しない検証用フォルダーを選んで実行します。次の操作は.NET10 SDK導入後を想定し、既存のglobal.jsonを上書きしません。

New-Item -ItemType Directory -Path .\dotnet10-try
Set-Location .\dotnet10-try
dotnet --version
dotnet new console -n HelloNet10 -f net10.0
Set-Location .\HelloNet10
dotnet build
dotnet run

ASP.NET Core API(PowerShell)

dotnet new webapi -n TodoApi10 -f net10.0 --use-controllers
Set-Location .\TodoApi10
dotnet build
dotnet run

dotnet testは、テストプロジェクトを用意してからそのプロジェクトに対して実行します。コマンド行末に「// 単体テスト追加後」のような説明文字を付けると、シェルの引数として扱われるため、コピー用コマンドとは分けてください。

プロジェクトファイル例

<Project Sdk="Microsoft.NET.Sdk">
  <PropertyGroup>
    <OutputType>Exe</OutputType>
    <TargetFramework>net10.0</TargetFramework>
    <ImplicitUsings>enable</ImplicitUsings>
    <Nullable>enable</Nullable>
  </PropertyGroup>
</Project>

正式な.NET10の通常のコンソールアプリでは、LangVersionをpreviewにする必要はありません。特定のプレビュー言語機能を評価する場合に限り、対応するSDKとドキュメントを確認して別途設定します。

VS 2022を残す場合:既存プロジェクトと.NET10を分ける

既存プロジェクトをVS2022で維持する場合は、そのプロジェクトの対応フレームワークとSDKを保ち、.NET10の検証を別フォルダー・別ブランチ・VS2026またはCLIで行います。マルチターゲットを追加するだけで、非対応IDEのビルド問題が必ず解消するわけではありません。

CIも.NET10 SDKの導入と選択結果を確認します。SDKとNuGet依存関係、発行先OSの対応を揃えてから本番プロジェクトへ反映してください。

アンインストール/ロールバック/隔離のコツ

  • SDK のクリーンアップ:
    dotnet --list-sdks で複数の 10.0 系が見える場合、不要版は「アプリと機能」からアンインストール。誤消去を防ぐため、global.json で使用版を固定してから作業するのが安全です。
  • Dev Container/WSL/VM:
    プレビュー評価はコンテナや仮想マシンに閉じ込めると本番環境への影響を最小化できます。Windows なら Hyper‑V/WSL2 を活用。
  • VS 2026 の削除:
    VS Installer から VS 2026 インスタンスのみを選択してアンインストールすれば、VS 2022 には影響しません。

チェックリスト:導入前に確認したいこと

  • 端末の Windows 更新(.NET SDK インストーラや MSBuild の前提更新が必要な場合あり)。
  • 社内のコード解析/拡張機能(ReSharper、Roslyn Analyzers 等)のプレビュー対応状況。
  • CI/CD(ビルドエージェント)への SDK 追加、キャッシュクリア手順。
  • ライブラリ依存(NuGet)の net10.0 サポート状況。互換 TFM(netstandard2.0/2.1)で当座を凌げるか。

トラブルシューティング深掘り

Visual Studio が .NET 10 を「認識するがビルドできない」理由

Visual Studioで選ばれるSDKと、ターミナルのdotnetが選ぶSDKは一致するとは限りません。公式のインストール説明ではVisual Studioが自身の.NETを管理することも案内されています。IDEのバージョン・同梱SDK・作業フォルダーのglobal.json・dotnet –infoを合わせて確認し、単にSDKがインストール済みだから対応すると判断しないでください。

グローバルとローカルの SDK 解決順序

global.jsonの公式仕様では、CLIは現在の作業ディレクトリから上位へglobal.jsonを探します。プロジェクト直下だけを見る仕組みではありません。versionには完全なSDK番号が必要で、10.0.xや10.0.100-rc.2.xのようなワイルドカードは使えません。rollForwardのfeatureは同じメジャー・マイナー内の機能帯を許可するポリシーで、メジャー更新を自由に取り込む設定ではありません。

マルチターゲット時の注意

net9.0とnet10.0を両方含むライブラリは、両ターゲットを処理できるVS2026や対応CLIで確認してください。古いIDEで一方だけを指定しても、プロジェクト評価や依存関係で問題が残る場合があります。対応していないIDEでの動作を保証する回避策として紹介しないでください。

ケース別のおすすめ構成

用途おすすめ理由
新機能を広く試したい(IDE 派)VS 2026 + .NET 10 SDKテンプレート・デザイナ・F5 デバッグまで IDE で完結。
安全に触りたい(まずは最小投資)SDK 単体 + CLI + VS CodeIDEを追加せずCLIで評価できる。SDK追加の影響は確認。
チーム合意前の段階的導入マルチターゲット(net9.0;net10.0)+ CI 分業各ターゲットのSDKとIDE対応を確認してCIで検証。
本番リリース準備(LTS 移行)対応するVS 2026と.NET10 SDKで統一IDE/SDK/CI の対応関係を揃え、移行コストとリスクを最小化。

まとめ(運用判断の指針)

  • net10.0の正式なIDEサポートはVS2026 18.0以降。VS2022とは対応範囲を区別してください。CLIは.NET10 SDKで検証できます。
  • IDE まで含めて試すなら VS 2026(v18) を追加インストール。VS 2022 とは共存可能。
  • 最小リスクで試すなら「SDK + CLI + VS Code」。global.json でバージョン固定を徹底。
  • マルチターゲットや CI 分業で、チーム全体の移行を段階的に進める。
  • プレビューはあくまで検証用途。別環境に分離し、バックアップとロールバック手順を用意してから着手する。

付録:コマンド断片集

SDK の導入・確認

winget install --id Microsoft.DotNet.SDK.10 -e
dotnet --list-sdks
dotnet --info

テンプレート作成(CLI)

dotnet new console -n HelloNet10 -f net10.0
dotnet new webapi -n SampleApi10 -f net10.0 --use-controllers
dotnet new classlib -n Lib10 -f net10.0

テスト・発行

dotnet new xunit -n Lib10.Tests -f net10.0
dotnet test Lib10.Tests

dotnet publish SampleApi10 -c Release -r win-x64 --self-contained false

global.json(完全なSDK番号で選択)

以下は10.0.100を例にした形式です。実際にはdotnet –list-sdksで確認した、必要な10.0系SDKの完全な番号に置き換えてください。rollForwardをlatestPatchにすると指定した機能帯内の最新パッチを選び、該当SDKがなければエラーになります。

{
  "sdk": {
    "version": "10.0.100",
    "allowPrerelease": false,
    "rollForward": "latestPatch"
  }
}

設定後はそのフォルダーでdotnet –versionを実行し、選ばれたSDKを確認します。既存のglobal.jsonがある場合は内容を確認し、チームやCIと合わせて変更してください。

マルチターゲット(ライブラリ)

<Project Sdk="Microsoft.NET.Sdk">
  <PropertyGroup>
    <TargetFrameworks>net9.0;net10.0</TargetFrameworks>
    <TreatWarningsAsErrors>false</TreatWarningsAsErrors>
  </PropertyGroup>
</Project>

最後に

新規に.NET10を導入する場合は、正式版SDKと対応するVS2026、またはSDK+CLIを選びます。Preview/RCの再現が必要な場合だけ別の検証環境へ分離し、通常の開発環境へ古いプレビューを混在させないようにしてください。

この記事を書いた人

実務の現場で詰まりがちなポイントを地図にするITブログ「IT trip」を運営。Windows/Office(Teams・Excel)からSQL、サーバ運用、ガジェットまで、再現性のある手順と“なぜそうなるか”を丁寧に解説します。読んだらすぐ試せること、そして迷った人の次の一歩が見えることを大切にしています。

コメント

コメントする

目次