エラー「The target framework 'net8.0' must be 'net6.0'. 」の解消方法

2024/09/30に公開

結論

解消方法は2つあります。状況に合っている方を実施してみてください。

【方法1】
プロジェクトの Zip Deploy.pubxmlファイルを開き、下の部分を削除します。

<TargetFramework>net8.0</TargetFramework>

【方法2】
これは Microsoft.Azure.Functions.Worker.Sdk のバージョン 1.17.2 のバグです。
このSDKのバージョンを 1.17.1 以下にダウングレードすることで解消します。

詳細

.NET8で作成しているプロジェクトを、Azure Functions へ発行しようとしたところ、下のようなエラーが出ました。

The target framework 'net8.0' must be 'net6.0'. Verify if target framework has been overridden by a global property.

↓DEEPL翻訳↓

ターゲット・フレームワーク「net8.0」は「net6.0」でなければならない。ターゲット・フレームワークがグローバル・プロパティによってオーバーライドされていないか確認してください。

最初は TargetFrameworkの設定を間違えたのかと思いましたが、確認すると .NET8に設定されています。

エラーメッセージで検索したところ、同様のエラーが複数報告されていました。
どうやら Microsoft.Azure.Functions.Worker.Sdk のバージョン 1.17.2 のバグのようです。

下のサイトに分かりやすくまとめてあったので、ぜひ参考にしてみてください。

Guide: Upgrade Azure Functions from .net6 to .net8 dotnet-isolated workers

上記サイトには解消方法が2つ書いてありました。

【方法1】
プロジェクトの Zip Deploy.pubxmlファイルを開き、下の部分を削除します。

<TargetFramework>net8.0</TargetFramework>

【方法2】
これは Microsoft.Azure.Functions.Worker.Sdk のバージョン 1.17.2 のバグです。
このSDKのバージョンを 1.17.1 以下にダウングレードすることで解消します。

ご自身の環境や開発方針などに合わせて、適した方法を試してみてください。

株式会社ジード テックブログ

Discussion