私は練習のために使用する小さな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ファイルにすることはできません。
私がこれらのようなNuGetエラーがある時はいつでも私は通常これらのステップを踏みます:
これらの手順をすべて実行すると、ほとんどの場合すべてのパッケージが復元され、dllがMVCプログラムに必要になります。
編集>>>
Visual Studio 2013以降の場合、手順2)は次のようになります。
System.Net.*
へのすべてのコード参照を削除
パッケージウィンドウで
Install-Package Microsoft.AspNet.WebApi.Client
プロジェクトを整理して再構築する
私は余分なものを見つけました
<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に。それを機能させるためにそれを削除しました。他のパッケージをインストールしてから削除すると、問題が発生しました。
user3919888は私を正しい方向に向けていましたが、Package-ManagerコンソールでUpdate-Package -reinstall Microsoft.AspNet.WebApi.Client
を実行する必要がありました。基本インストール自体では問題は認識されませんが、パッケージがすでにインストールされていることは認識され、上書きされることはありません。
私はこの答えを投稿していますが、これはめったに起こらないのでグーグルしてこのページにたどり着く前に私が最後にしたことを思い出す前に起こるからです。
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>
System.Net.*
へのすべてのコード参照を削除Microsoft.AspNet.WebApi
とその依存関係。Microsoft.AspNet.WebApi
とその依存関係。もともと GeoMac によるコメントで示唆され、 NuGetのドキュメント に文書化されているように、他の答えがどれもうまくいかなかったとき、私のために次のものがうまくいった。
ツール/ NuGetパッケージマネージャ/パッケージマネージャコンソール
Update-Package -ProjectName MyProjectName -reinstall
.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の質問に答えないかもしれません、しかしそれはトップ投票された答えをする代わりに最初にこれをチェックすることによって私の時間を節約しました。
私の場合、上記の解決策はどれもうまくいきませんでした。参照を右クリックして解決した
System.Net.Http.Formatting
visual Studioから、プロパティCopy Localをtrueに設定します。
これがどういうわけか役に立つことを願っています。
私にとってこの厄介なエラーを解決したのは、Visual Studioを閉じて再度開くことだけでした。それから解決策を再構築すれば、それはすべてうまくいきました。がらくたの答えで申し訳ありませんが、それは私のためにそれを解決したので、私はそれが答えの価値があると思います。
私にとってはそれは同じくらい簡単でした
Microsoft.AspNet.WebApi.Client
を削除します私にとっては、WebApi.configに以下の行をいくつか追加しても、新しいnugetパッケージを更新してもうまくいかない
var setting = config.Formatters.JsonFormatter.SerializerSettings;
setting.ContractResolver = new CamelCasePropertyNamesContractResolver();
setting.Formatting = Formatting.Indented;
名前空間を追加することを忘れないでください。
using Newtonsoft.Json.Serialization;
using Newtonsoft.Json;
VS2019:ツール-> Nugetパッケージマネージャー->パッケージマネージャーの設定->パッケージの復元セクションで、2つのオプションをチェックします。その後、プロジェクトパッケージフォルダーに移動し、内部のすべての子フォルダーを削除します(エラーが発生しなくなります)。その後、ソリューションを再構築すると、Nugetはすべてのパッケージを再ダウンロードし、プロジェクトは参照なしで実行されます。
おそらく、プロパティダイアログでライブラリ参照を "Copy Local = True"に設定する必要があります。ビジュアルスタジオで「参照」をクリックしてから、不足している参照を右クリックし、コンテキストメニューからプロパティをクリックして、ローカル設定をコピーします。
私の場合、上記のどれもうまくいきませんでしたが、5.2.3.0を4.0.0.0に置き換えても問題は解決しました。
この問題を解決するために私がしたことは
NuGetパッケージマネージャに行きます。
左側のパネルから[Updates]を選択します。
WebApiコンポーネントを更新する
その後、プロジェクトはエラーなく実行されました。