エラー「The target framework 'net8.0' must be 'net6.0'. 」の解消方法
結論
解消方法は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