Skip to content

.NET 6.0 ターゲットエラーの解決方法

問題の概要

.NET 6.0 をターゲットとするアプリケーションをビルドまたは実行する際に、以下のエラーメッセージが表示されることがあります:

The current .NET SDK does not support targeting .NET 6.0. Either target .NET 5.0 or lower, or use a version of the .NET SDK that supports .NET 6.0.

このエラーは、使用している .NET SDK が .NET 6.0 をサポートしていないか、適切に設定されていないことを示しています。

主な原因と解決策

1. Visual Studio のバージョンが古い

問題点: .NET 6.0 は Visual Studio 2022 以降でのみサポートされています。Visual Studio 2019 では動作しません。

解決策:

  • Visual Studio 2022 にアップグレードしてください
  • 最新版に更新されているか確認(ヘルプ > 更新プログラムの確認)

INFO

.NET バージョンと Visual Studio の対応関係:

  • .NET 6.0 → Visual Studio 2022 (バージョン 17.0 以降)
  • .NET 8.0 → Visual Studio 2022 (バージョン 17.8 以降)
  • .NET 9.0 → 対応する最新の Visual Studio バージョン

2. .NET SDK のインストール不足

問題点: 必要な .NET SDK がインストールされていないか、古いバージョンが使用されています。

解決策:

bash
dotnet --list-sdks

3. global.json ファイルの設定

問題点: プロジェクトディレクトリ内の global.json ファイルで古い SDK バージョンが指定されている。

解決策:

  • global.json ファイルを開き、SDK バージョンを更新:
json
{
  "sdk": {
    "version": "6.0.300", // インストールされているバージョンに合わせる
    "rollForward": "latestMinor"
  }
}
  • または、.csproj ファイルと同じディレクトリに複数の global.json ファイルがある場合は、古い方を削除

4. 環境変数の設定

問題点: MSBuildSDKsPath 環境変数で古い SDK パスが設定されている。

解決策:

  • 環境変数を確認し、必要に応じて削除または更新:
bash
# 環境変数の確認(Windows)
echo %MSBuildSDKsPath%

# 環境変数の確認(Linux/macOS)
echo $MSBuildSDKsPath

5. ソリューションファイルの設定

問題点: .sln ファイル内で古い Visual Studio バージョンが指定されている。

解決策:

  • ソリューションファイルをテキストエディタで開き、バージョンを更新:
ini
VisualStudioVersion = 17.0.0.0
MinimumVisualStudioVersion = 17.0.0.0

6. Docker 設定の不整合

問題点: Dockerfile 内の .NET バージョンとプロジェクトのターゲットフレームワークが一致しない。

解決策:

  • Dockerfile のベースイメージを更新:
dockerfile
FROM mcr.microsoft.com/dotnet/aspnet:6.0 AS base
FROM mcr.microsoft.com/dotnet/sdk:6.0 AS build
  • .csproj ファイルのターゲットフレームワークを確認:
xml
<PropertyGroup>
    <TargetFramework>net6.0</TargetFramework>
</PropertyGroup>

7. Visual Studio 設定の問題

問題点: 「Mono で MSBuild を使用してビルド」オプションが有効になっている。

解決策:

  • ソリューションエクスプローラーでソリューションを右クリック > プロパティ
  • ビルド > 一般 で「Mono で MSBuild を使用してビルド」のチェックを外す

その他の解決策

システムの再起動

Visual Studio や .NET SDK をインストール/更新した後は、システムの再起動を行うことで問題が解決することがあります。

プロジェクトのクリーンとリビルド

bash
dotnet clean
dotnet build

キャッシュのクリア

bash
dotnet nuget locals all --clear

トラブルシューティングの流れ

以下に問題解決のためのフローチャートを示します:

まとめ

.NET 6.0 ターゲットエラーは、主に以下のいずれかが原因で発生します:

  1. サポートされていない Visual Studio バージョンの使用
  2. .NET 6.0 SDK の未インストールまたは不適切な設定
  3. 設定ファイル(global.json、.sln、Dockerfile)の不整合
  4. 環境変数の誤った設定

上記の解決策を順に試すことで、ほとんどの場合の問題を解決できます。最新の .NET バージョンを使用する場合は、常に対応する Visual Studio のバージョンを使用していることを確認してください。