web-dev-qa-db-ja.com

ファイルまたはアセンブリ 'System.Net.Http.Formatting'またはその依存関係の1つを読み込めませんでした。指定されたパスが見つかりません

私は練習のために使用する小さなMVCアプリを持っていますが、今私はデバッグしようとするたびにエラーに遭遇しています。

Could not load file or Assembly 'System.Net.Http.Formatting' or one of its dependencies. 
The system cannot find the path specified.

私はグーグルしましたが解決策を見つけることができません。私は.NET 4.5を使用しています。

.Net 4.5を使用しているので、DLLファイルにすることはできません。

133
Norris

私がこれらのようなNuGetエラーがある時はいつでも私は通常これらのステップを踏みます:

  1. Windowsエクスプローラのpackagesフォルダに移動して削除します。
  2. Visual Studioを開き、Tools> Library Package Manager> Package Manager Settingsに移動し、左側のPackage Manager項目の下に「パッケージキャッシュのクリア」ボタンこのボタンをクリックし、「ビルド中に不足しているパッケージのダウンロードをNuGetに許可する」のチェックボックスがチェックされていることを確認します。
  3. 解決をきれいにしなさい
  4. 次に、ソリューションエクスプローラでソリューションを右クリックしてNuGet Package Restoreを有効にします。
  5. ソリューションを構築する
  6. Visual Studioを再起動します。

これらの手順をすべて実行すると、ほとんどの場合すべてのパッケージが復元され、dllがMVCプログラムに必要になります。


編集>>>

Visual Studio 2013以降の場合、手順2)は次のようになります。

  1. Visual Studioを開き、Tools> Options> NuGet Package Managerの順に進むと、右側に[Clear Package Cache]ボタンがあります。このボタンをクリックし、「不足しているパッケージのダウンロードをNuGetに許可する」および「Visual Studioでビルド中に不足しているパッケージを自動的にチェックする」のチェックボックスがチェックされていることを確認します。
163
Jordan_Walters
  • System.Net.*へのすべてのコード参照を削除

  • パッケージウィンドウで

    Install-Package Microsoft.AspNet.WebApi.Client

  • プロジェクトを整理して再構築する

143
user3919888

私は余分なものを見つけました

  <dependentAssembly>
    <assemblyIdentity name="System.Net.Http" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
    <bindingRedirect oldVersion="0.0.0.0-2.2.28.0" newVersion="2.2.28.0" />
  </dependentAssembly>

私のweb.configに。それを機能させるためにそれを削除しました。他のパッケージをインストールしてから削除すると、問題が発生しました。

22
realPT

user3919888は私を正しい方向に向けていましたが、Package-ManagerコンソールでUpdate-Package -reinstall Microsoft.AspNet.WebApi.Clientを実行する必要がありました。基本インストール自体では問題は認識されませんが、パッケージがすでにインストールされていることは認識され、上書きされることはありません。

私はこの答えを投稿していますが、これはめったに起こらないのでグーグルしてこのページにたどり着く前に私が最後にしたことを思い出す前に起こるからです。

15
longestwayround

web.configから次の行を削除すると私の問題は解決しました。このプロジェクトではWebApiコンポーネントを使用しなかったことに注意してください。そのため、他の人にとってはこの解決策は期待通りに動作しないかもしれません。

  <dependentAssembly>
    <assemblyIdentity name="System.Net.Http.Formatting" publicKeyToken="31bf3856ad364e35" culture="neutral" />
    <bindingRedirect oldVersion="0.0.0.0-5.2.3.0" newVersion="5.2.3.0" />
  </dependentAssembly>
13
Mahmoud Moravej
  1. System.Net.*へのすべてのコード参照を削除
  2. アンインストール:パッケージMicrosoft.AspNet.WebApiとその依存関係。
  3. すべて再インストールします。パッケージMicrosoft.AspNet.WebApiとその依存関係。
  4. プロジェクトを整理して再構築する
6
Sandeep

もともと GeoMac によるコメントで示唆され、 NuGetのドキュメント に文書化されているように、他の答えがどれもうまくいかなかったとき、私のために次のものがうまくいった。

ツール/ NuGetパッケージマネージャ/パッケージマネージャコンソール

Update-Package -ProjectName MyProjectName -reinstall
5
bbodenmiller

.NET標準プロジェクトを.NET Frameworkプロジェクトと組み合わせて使用​​する場合

.NET Standardの方法では、.NET Standardプロジェクトに含まれるパッケージは、他の.NET Coreプロジェクトおよび.NET Standardプロジェクトで正しく使用されます。

.NET Frameworkの方法で、.NET Framework(MVC)プロジェクトから.NET Standardプロジェクトを参照している場合は、同じnugetパッケージを手動でダウンロードしてインストールする必要があります。

そのため、私の質問に対する答えは、Microsoft.AspNet.WebApi.Clientが必要な.NET標準プロジェクトを使用しているWebプロジェクト(.NET Framework)にMicrosoft.AspNet.WebApi.Clientをダウンロードしてインストールする必要があったことです。実際、私はすでにこれをインストールしていましたが、バージョンの違いがありました。

私はただ他の人が見るためにこの答えを追加します、それは直接OPの質問に答えないかもしれません、しかしそれはトップ投票された答えをする代わりに最初にこれをチェックすることによって私の時間を節約しました。

3
CularBytes

私の場合、上記の解決策はどれもうまくいきませんでした。参照を右クリックして解決した

System.Net.Http.Formatting

visual Studioから、プロパティCopy Localtrueに設定します。

これがどういうわけか役に立つことを願っています。

3
Hugo Nava Kopp

私にとってこの厄介なエラーを解決したのは、Visual Studioを閉じて再度開くことだけでした。それから解決策を再構築すれば、それはすべてうまくいきました。がらくたの答えで申し訳ありませんが、それは私のためにそれを解決したので、私はそれが答えの価値があると思います。

1
andreasnico

私にとってはそれは同じくらい簡単でした

  1. WindowsエクスプローラのpackagesフォルダからMicrosoft.AspNet.WebApi.Clientを削除します
  2. ツール> NuGetパッケージマネージャ>パッケージマネージャコンソールを開きます。
  3. 「復元」ボタンをクリック
1
adam0101

私は同じ問題に直面していた

System.Net.Http.Formatting

webconfigの中に書かれたバージョンは5.0.3でしたが、binフォルダの中にあるライブラリSystem.Net.Http.Formatting dllのバージョンは4.0.2でした。

だから私はちょうどビンの中に与えられた同じものに置き換えました

enter image description here

enter image description here

このきれいなプロジェクトを実行してビルドするだけです。

1

私にとっては、WebApi.configに以下の行をいくつか追加しても、新しいnugetパッケージを更新してもうまくいかない

var setting = config.Formatters.JsonFormatter.SerializerSettings;
setting.ContractResolver = new CamelCasePropertyNamesContractResolver();
setting.Formatting = Formatting.Indented;

名前空間を追加することを忘れないでください。

using Newtonsoft.Json.Serialization; 
using Newtonsoft.Json;
0
ashish Vicky

VS2019:ツール-> Nugetパッケージマネージャー->パッケージマネージャーの設定->パッケージの復元セクションで、2つのオプションをチェックします。その後、プロジェクトパッケージフォルダーに移動し、内部のすべての子フォルダーを削除します(エラーが発生しなくなります)。その後、ソリューションを再構築すると、Nugetはすべてのパッケージを再ダウンロードし、プロジェクトは参照なしで実行されます。

0
grandholy

おそらく、プロパティダイアログでライブラリ参照を "Copy Local = True"に設定する必要があります。ビジュアルスタジオで「参照」をクリックしてから、不足している参照を右クリックし、コンテキストメニューからプロパティをクリックして、ローカル設定をコピーします。

0
mow

私の場合、上記のどれもうまくいきませんでしたが、5.2.3.0を4.0.0.0に置き換えても問題は解決しました。

この問題を解決するために私がしたことは

  1. NuGetパッケージマネージャに行きます。

  2. 左側のパネルから[Updates]を選択します。

  3. WebApiコンポーネントを更新する

  4. その後、プロジェクトはエラーなく実行されました。

0
Raj