【解決】System.Text.Json 9.0.0.0 で FileNotFoundException|System.Threading.Tasks.Extensions が必要な理由と対処法【.NET Framework】

✅ 概要

.NET Framework で System.Text.Json を使っていて、次のようなエラーに遭遇していませんか?

JsonSerializer.Serialize("") // ← 実行時
例外がスローされました: 'System.IO.FileNotFoundException' (〇〇.exe の中)
ファイルまたはアセンブリ 'System.Threading.Tasks.Extensions, Version=4.2.0.1, Culture=neutral, PublicKeyToken='、またはその依存関係の 1 つが読み込めませんでした。指定されたファイルが見つかりません。
    

System.Text.Json 9.0 以降で発生する実行時エラーの原因と対処法は下記です


🔍 エラー内容と原因

エラー内容(例)

System.IO.FileNotFoundException
Message=ファイルまたはアセンブリ 'System.Threading.Tasks.Extensions, Version=4.2.0.1' が見つかりません。
Source=System.Text.Json
    
エラー画面のスクリーンショット

原因

.NET Framework 上で System.Text.Json, Version=9.0.0.0 以降を使用すると、内部で System.Threading.Tasks.Extensions を参照しているようです


⚠️ よくある誤解

誤解実際
Visual Studio でビルド通ったから大丈夫?❌ 実行時にDLLがなければクラッシュします。
System.Text.Json だけ入れればOK?❌ 依存DLL(特に System.Threading.Tasks.Extensions)も必要です。

✅ 解決方法:必要なDLLをプロジェクトに追加する

1. プロジェクト内の「参照の追加」から System.Threading.Tasks.Extensionsの追加

Visual Studio プロジェクト内の「参照の追加」から System.Threading.Tasks.Extensionsの追加が必要です

参照の追加画面のスクリーンショット

2. DLLがビルドフォルダにコピーされているか確認

ビルド後に、以下のファイルが bin\Debug\ または bin\Release\ に存在する確認:

System.Threading.Tasks.Extensions.dll

✅ 依存関係まとめ

System.Text.Json を使う場合、以下の依存DLLが必要になることがあります:


🔚 まとめ

項目内容
エラー原因System.Text.Json v9.0+ が System.Threading.Tasks.Extensions を要求
対処法NuGetで明示的にインストールし、DLLが出力されることを確認
OS依存性Windows 11 にも DLL は含まれていない。必ず配布対象に含める

このエラーは初心者だけでなく、中級者でも見落としやすいものです。
特に .NET Framework.NET Core の挙動の違いが原因となるため、正しい依存関係の理解が重要です。


WinUI 3 / XAML の Grid.Width 設定方法

WinUI 3でMenuFlyoutをShowAtで表示する方法【コード付き解説】

MenuFlyoutWinUI 3 で便利なポップアップメニュー

WinUI 3の開発で混乱しがちな「空白のウィンドウ」と「空白のページ」の違い

PowerShellでMSIXアプリ(Storeアプリ)を起動する方法|AppUserModelIdとURIスキーム活用術

Microsoft Storeアプリ更新時のロールアウト設定まとめ

Microsoft純正の新しいコンソールエディタ「edit」が復活!| edit.exe インストール方法

Microsoft Authenticatorのオートフィル機能が2025年7月に終了

RuntimeBroker.exeとMsEdgeWebView2.exeとは?Windows 11のプロセスについて

PowerShellでGrapheme Clusterについて処理を考える

【Windows】Volta コマンドライン インストール | Node.jsをバージョン管理する方法

【C#】大容量ファイルを指定サイズ以下に分割する方法|.NET8対応コード付き

【C# .NET 8】ファイルから重複行を削除する2つの方法|Distinct vs HashSet

【C#】.emlファイルの本文を読みやすく抽出する方法

WinUI 3 ComboBoxの自作クラスバインドと選択イベント検出方法

switch文でオブジェクトの型を判別する方法

【WPF】Task.Run中にUIを更新する方法

System.Text.Json 9.0.0.0 で FileNotFoundException

【Anker Soundcore Liberty 4】イヤーピース紛失!代替品はAmazonで購入

Windows 11でタスクマネージャー以外からアプリを終了させる方法【PowerShell・コマンドプロンプト】

Homebrewの「update」と「upgrade」の違い+バージョン確認方法|Macのパッケージ管理