NETSDK1045の修正:現在の .NET SDK は Windows での .NET 8.0 ターゲットをサポートしていません

beginner🪟 Windows2026-05-25| Windows 10/11, Visual Studio 2022, .NET SDK, MSBuild

Error Message

error NETSDK1045: The current .NET SDK does not support targeting .NET 8.0.
#dotnet#sdk#visual-studio#msbuild#csproj

問題の概要

.NETプロジェクトをビルドまたは実行しようとすると、ターミナルまたはVisual Studioの出力ウィンドウに次のビルドエラーが表示されることがあります。

error NETSDK1045: The current .NET SDK does not support targeting .NET 8.0. Either target a .NET SDK version that supports .NET 8.0, or use a .NET SDK version that supports the current target.

これは、MSBuildエンジンまたは.NET CLIが特定のフレームワークバージョン(この場合は.NET 8.0)向けにコードをコンパイルしようとしているものの、Windowsマシンに互換性のあるSDKがインストールされていないか、設定ファイルによって古いSDKバージョンの使用が強制されているために発生します。

TL;DR: クイックソリューション

  • SDKをインストールする: Microsoft公式サイトのダウンロードページから、特定の.NET SDKバージョンをダウンロードしてインストールします。
  • Visual Studioを更新する: Visual Studioを使用している場合は、Visual Studio Installerを開き、最新バージョンに更新してください。.NET 8.0には、少なくともVisual Studio 2022(v17.8以降)が必要です。
  • global.jsonを確認する: プロジェクトまたは親フォルダにglobal.jsonファイルがないか確認してください。ファイル内で古いバージョンが指定されている場合、新しいSDKがインストールされていてもビルドは失敗します。

詳細な原因

1. SDKバージョンが未インストール

最も一般的な原因は、単に.NET 8.0 SDKがインストールされていないことです。Windows Updateで.NET SDKが常に自動的に更新されるわけではなく、手動でのインストールやVisual Studioの更新が必要な場合が多くあります。

2. Visual Studioのバージョン不一致

Visual Studioと.NET SDKは密接に関連しています。.NET 8.0を使用しようとしているのに、Visual Studio 2019や古いバージョンのVisual Studio 2022を実行している場合、内部のMSBuildバージョンが.NET 8.0プロジェクトの構造を処理できません。

3. global.jsonによる制限

global.jsonファイルは、プロジェクトを特定の.NET SDKバージョンに固定するために使用されます。チームメンバーが.NET 6.0を指定してこのファイルを作成し、あなたがプロジェクトのターゲットを.NET 8.0に更新した場合、CLIは依然として6.0 SDKを使用しようとし、NETSDK1045をスローします。

4. アーキテクチャの不一致 (x86 vs x64)

64ビット版Windowsで、x86バージョンのSDKはインストールされているがプロジェクトがx64バージョンを探している場合や、PATH環境変数がC:\Program Files\dotnet\ではなくC:\Program Files (x86)\dotnet\を指している場合に発生することがあります。

ステップバイステップの解決策

方法 1: 正しいSDKを確認してインストールする

まず、システムで実際に認識されているバージョンを確認します。PowerShellまたはコマンドプロンプトを開き、以下を実行します。

dotnet --list-sdks

リストに8.0.xxxが表示されない場合は、インストールする必要があります。.NET 8.0 ダウンロードページにアクセスし、Windows用のSDK x64インストーラーを入手してください。インストール後、ターミナルを再起動してください。

方法 2: Visual Studio 2022を更新する

.NET 8.0のサポートは、Visual Studio 2022 バージョン 17.8で導入されました。17.7以前を使用している場合、NETSDK1045が表示されます。

  • Visual Studio Installerを開きます。
  • Visual Studio 2022のインスタンスで更新をクリックします。
  • 更新後、「.NET デスクトップ開発」ワークロードがチェックされていること、および「個別のコンポーネント」タブで「.NET 8.0 ランタイム」が選択されていることを確認してください。

方法 3: global.jsonの修正

プロジェクトのルートディレクトリでglobal.jsonという名前のファイルを探します。通常、以下のようになっています。

{
  "sdk": {
    "version": "6.0.100"
  }
}

このファイルが存在する場合、他のすべての設定より優先されます。2つの選択肢があります。

  • 削除する: これにより、システムはインストールされている最新のSDKを使用できるようになります。
  • 更新する: インストールされている.NET 8.0 SDKに合わせてバージョン文字列を変更します(例:"8.0.100")。

正確なバージョン文字列は、dotnet --versionを実行することで確認できます。

方法 4: 環境変数の確認

dotnet --list-sdksで必要なバージョンが表示されるのにビルドが失敗する場合、PATHの設定に問題がある可能性があります。Windowsは、64ビットのdotnetパスよりも32ビット(x86)のパスを優先することがあります。

  • スタートメニューで「システム環境変数の編集」を検索します。
  • 環境変数をクリックします。
  • システム環境変数の下にあるPathを見つけて「編集」をクリックします。
  • C:\Program Files\dotnet\C:\Program Files (x86)\dotnet\よりもにあることを確認してください。

検証: 修正の確認方法

上記の手順を実行した後、プロジェクトディレクトリで次のコマンドを実行してください。

# 有効なバージョンを確認
dotnet --version

# プロジェクトのビルドを試行
dotnet build

NETSDK1045エラーなしでビルドが成功すれば、環境は正しく設定されています。Visual Studioを使用している場合は、ソリューションのクリーン(ビルド > ソリューションのクリーン)を行い、Visual Studioを再起動して、新しいSDKパスが認識されるようにしてください。

関連資料

Related Error Notes