.NET Framework アプリケーションでファイルまたはアセンブリ "System.ValueTuple" が見つからないエラーが発生する

じぇんつー
質問: .NET Framework アプリケーションで System.ValueTuple アセンブリのエラーが発生する
.NET Framework アプリケーションでNuGetパッケージライブラリを更新したら、System.ValueTuple アセンブリが見つからないエラーが発生するようになりました。 どう対処すればよいでしょうか?

現象

.NET Framework アプリケーションで以下の例外、エラーが発生します。

エラーメッセージ
System.IO.FileNotFoundException: ファイルまたはアセンブリ 'System.ValueTuple, Version=4.0.3.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51'、 またはその依存関係の 1 つが読み込めませんでした。指定されたファイルが見つかりません。

対処法

以下の手順でエラーを解消できる場合があります。

System.ValueTuple パッケージライブラリのインストール

NuGetパッケージマネージャーで、System.ValueTupleの最新バージョンのパッケージライブラリをインストールします。

.NET Framework アプリケーションでファイルまたはアセンブリ

参照への追加

.NET Frameworkアプリケーションの場合、NuGetでインストールしただけではプロジェクトの参照ノードに追加されないため、手動で参照追加する必要があります。
ソリューションエクスプローラーでプロジェクトのノードを開き、[参照]のノードで右クリックします。
.NET Framework アプリケーションでファイルまたはアセンブリ

ポップアップメニューの[参照の追加]の項目をクリックします。
.NET Framework アプリケーションでファイルまたはアセンブリ


[参照マネージャー]のダイアログが表示されます。左側のメニューの[参照]をクリックします。 下図の画面に切り替わりますので、ダイアログ右下の[参照]ボタンをクリックします。
.NET Framework アプリケーションでファイルまたはアセンブリ

ファイルの選択ダイアログが表示されます。
.NET Framework アプリケーションでファイルまたはアセンブリ

以下のパスのSystem.ValueTuple.dllファイルを選択します。

(ソリューションのパス)\packages\System.ValueTuple.4.6.1\lib\net47\System.ValueTuple.dll


選択したSystem.ValueTuple.dllアセンブリを追加します。
.NET Framework アプリケーションでファイルまたはアセンブリ

ソリューションエクスプローラーのプロジェクトの[参照]ノード内に System.ValueTuple の項目が追加されます。
.NET Framework アプリケーションでファイルまたはアセンブリ

System.ValueTuple のアセンブリバージョンの確認

ソリューションエクスプローラーのプロジェクトの[参照]ノードの System.ValueTuple の項目を選択します。 選択した状態でプロパティウィンドウの内容を確認します。
.NET Framework アプリケーションでファイルまたはアセンブリ

[バージョン]の値を確認します。下図では、バージョンは"4.0.5.0"となります。
.NET Framework アプリケーションでファイルまたはアセンブリ

System.ValueTuple のアセンブリのコピー設定

System.ValueTuple のアセンブリがビルド先にコピーされる動作にします。

ソリューションエクスプローラーのプロジェクトの[参照]ノードの System.ValueTuple の項目を選択します。 選択した状態でプロパティウィンドウの[ローカルにコピー]の設定を"True"に変更します。

.NET Framework アプリケーションでファイルまたはアセンブリ

App.config の編集

App.configファイルを変更します。newVersion のバージョン値は先の手順で調べたSystem.ValueTuple のアセンブリバージョンを記述します。 今回の場合は "4.0.5.0" になります。

App.config
<?xml version="1.0" encoding="utf-8"?>
<configuration>
    <startup> 
        <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.8.1"/>
    </startup>
  <runtime>
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">

      <!-- 中略 -->

      <dependentAssembly>
        <assemblyIdentity name="System.ValueTuple" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral"/>
        <bindingRedirect oldVersion="0.0.0.0-4.0.3.0" newVersion="4.0.5.0"/>
      </dependentAssembly>

      <!-- 中略 -->

    </assemblyBinding>
  </runtime>
</configuration>

動作確認

exeファイルと同じディレクトリに System.ValueTuple.dll が配置されていることを確認し、プログラムを実行します。
実行してエラーや例外が表示されないことを確認します。

.NET Framework アプリケーションでファイルまたはアセンブリ

AuthorPortraitAlt
著者
iPentecのメインプログラマー
C#, ASP.NET の開発がメイン、少し前まではDelphiを愛用
作成日: 2025-08-20
Copyright © 1995–2025 iPentec all rights reserverd.