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


158

練習上の理由で使用する小さな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ファイルにすることはできません。


1
ここで依存関係を参照してください.. nuget.org/packages/System.Net.Http.Formatting
Vishal Sharma

試してみたが機能しなかった...代わりに、パッケージマネージャーで「NuGetCmdletUnhandledException、NuGet.PowerShell.Commands.InstallPackageCommand」というエラーが表示される
Norris

回答:


185

このようなNuGetエラーが発生するたびに、通常は次の手順を実行します。

  1. Windowsエクスプローラーのパッケージフォルダーに移動し、それを削除します。
  2. Visual Studioを開き、[ ツール] > [ ライブラリパッケージマネージャー] > [ パッケージマネージャー設定]に移動し、左側の[パッケージマネージャー]項目の下に[パッケージキャッシュをクリア]ボタンがあります。このボタンをクリックして、「ビルド中に不足しているパッケージをNuGetがダウンロードできるようにする」のチェックボックスがオンになっていることを確認します。
  3. 溶液をきれいにする
  4. 次に、ソリューションエクスプローラーでソリューションを右クリックし、NuGetパッケージの復元を有効にします。
  5. ソリューションを構築する
  6. Visual Studioを再起動します。

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


編集>>>

Visual Studio 2013以降の場合、ステップ2)は次のようになります。

  1. Visual Studioを開き、[ ツール] > [ オプション] > [ NuGetパッケージマネージャー]に移動すると、右側に[パッケージキャッシュのクリア]ボタンがあります。このボタンをクリックして、「不足しているパッケージのダウンロードをNuGetに許可する」と「Visual Studioでのビルド中に不足しているパッケージを自動的に確認する」のチェックボックスがオンになっていることを確認します。

7
これでうまくいきました...問題を解決しました...ありがとうJordan_Walters ...投票するのに十分な担当者がいません...そうでなければ、あなたの助けは大いに感謝されました
Norris

10
良いアドバイスですが、「ファイルまたはアセンブリ 'System.Net.Http.Formatting'またはその依存関係の1つを読み込めませんでした。指定されたパスが見つかりません」の問題は修正されませんでした。私にとっては、ツール/ NuGetパッケージマネージャー/パッケージマネージャーコンソールに移動して、「Update-Package -ProjectName MyProject -reinstall」を実行する必要がありました。すべてが修正されました!
GeoMac 2014

3
@YuraZaletskyy $ {SolutionDir} / packages /にあると思います。つまり、ルートソリューションフォルダーです。
jakejgordon 2015

1
素晴らしいヒント、ありがとう、本当に助けてくれました。後のバージョンのVisual Studioを反映するために、さらに情報を追加したことを気にしないでください。
シェリダン

1
私は上記に従いましたが、それでもエラーは解決しませんでした-手動でdllバージョンを確認し、web.configファイルを確認したところ、重複するエントリがあったので、dllバージョンに一致するように1つのエントリを残してください。
JazziJeff 2017年

168
  • へのすべてのコード参照を削除します System.Net.*

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

    Install-Package Microsoft.AspNet.WebApi.Client

  • プロジェクトをクリーンして再構築する


2
この問題に遭遇し、Microsoft.AspNet.WebApi.Clientの最新のNuGetパッケージバージョンをインストールしたところ、参照リストにSystem.Net.Http.Formattingが表示されました。
ewomack

他のすべてを試しました。これは私のために働いた唯一のものです。
Timothy Kanski、2017

私のために働いた。正しいバージョンをインストールしてください。
CrusherJoe 2018

1
私は私の更新後にこのソリューションでは、働いていたWeb.Config bindingRedirectため System.Net.Http.FormattingSystem.Web.Http、上記のコマンドでインストールされた新しいものにそれから行ってきました。すなわち... <bindingRedirect oldVersion="0.0.0.0-5.2.3.0" newVersion="5.2.3.0"/><bindingRedirect oldVersion="0.0.0.0-4.0.30319" newVersion="4.0.30319"/>
Serjセーガン

私たちの多くが単にMicrosoft.AspNet.WebApi.Client NuGetパッケージを欠いていたのは、その場合でしょうか。
carlin.scott

27

余計に見つけた

  <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で。それを動作させるためにそれを削除しました。インストールしてから削除した他のパッケージが原因で問題が発生しました。


公開トークンのバージョンをどのようにして知るのですか?b03f5f7f11d50a3a
eran otzap 2016

パッケージマネージャーコンソールコマンドによって自動的に追加されます:Add-BindingRedirect *
Simon Hughes

18

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

これはめったに起こらないので、この答えを投稿しています。前回何をしたか思い出す前に、グーグルでこのページに到達してしまうからです。


16

次の行を削除すると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>

公開トークンのバージョンをどのようにして知るのですか?
eran otzap 2016

私が知っているように、バージョンに関係なく、すべてのMicrosoft dllのパブリックトークンです。
Mahmoud Moravej 16

面白くするために、これらの行を追加しました。
Krzysztof Madej 2017年

これで問題も解決しました。
Vishal

これで私の問題も解決しました。古いWebサイトプロジェクトをWebアプリケーションに変換しました。Web.configファイルはバージョン5.2.7を参照していましたが、インストールされているNuGetパッケージは5.2.3でした。これをWeb.configから削除すると、エラーが修正されました。
Cesar Daniel

9

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

.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の質問に直接回答しない場合がありますが、投票数の多い回答を行う代わりに、最初にこれを確認することで時間を節約できました。


1
私は.NET Coreを使用していますが、gingter.org / 2018/07/26 /…で HttpClientをモックするためのガイドを見つけました。そのガイドに従うと、OPの質問で説明されている問題が生じました。そして、あなたは解決策で問題を修正しました:)
ThorkilVærge19年

これは私のために働いたものです。推奨されるアプローチを試して、すべてのパッケージを削除および復元しましたが、結局、Nugetを使用してMicrosoft.AspNet.WebApi.Clientをインストールし、それが必要なバージョンであることを確認し、その後すべてが良好であることを確認しました
TH Todorov

すばらしい答えです-私はすべてをフレームワークに戻す必要があると思い始めていました!
d219

6
  1. へのすべてのコード参照を削除します System.Net.*
  2. アンインストール:パッケージMicrosoft.AspNet.WebApiとその依存関係。
  3. すべて再インストール:パッケージMicrosoft.AspNet.WebApiとその依存関係。
  4. プロジェクトをクリーンして再構築する

ありがとうございました!2日間の必死の試みの後、あなたは私を救った。それはほとんど私を夢中にさせた。
Marek Dorda 2017

5

最初にGeoMacのコメントで提案され、NuGetのドキュメントに文書化されているように、他の回答がどれも機能しなかったときに、次のことが機能しました。

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

Update-Package -ProjectName MyProjectName -reinstall

私はVisual Studio 2015を持っています。これは私がしなければならなかったことで、すぐに修正しました。
ダミアンC

3

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

System.Net.Http.Formatting

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

これが何とかお役に立てば幸いです。


2
私はそれをしました、そしてそれはまだ起こります
eran otzap '21 / 12/16

2

私にとってこの厄介なエラーを解決したのは、Visual Studioを閉じて再度開くことでした。次に、ソリューションを再構築すると、すべてが再び機能しました。がらくたの答えで申し訳ありませんが、それは私のためにそれを解決したので、それは答えの価値があると思います。


1
これも私に必要なすべてでした
Steve Vermeulen、2016年

1

私にとってはそれは簡単でした

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


1

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

System.Net.Http.Formatting

webconfig内に記述されたバージョンは5.0.3でしたが、binフォルダー内のライブラリSystem.Net.Http.Formatting dllバージョンは4.0.2でした。

だから私は箱の中にある同じものと交換しただけです

ここに画像の説明を入力してください

ここに画像の説明を入力してください

このクリーンなプロジェクトを実行してビルドするだけです


0

おそらく、プロパティダイアログでライブラリ参照を「Copy Local = True」に設定する必要があります。Visual Studioで[参照]をクリックし、不足している参照を右クリックします。コンテキストメニューの[プロパティ]をクリックすると、ローカル設定のコピーが表示されます。


0

私にとって、WebApi.configに以下の行をいくつか追加すると、新しいnugetパッケージを更新した後、機能しませんでした。

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

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

using Newtonsoft.Json.Serialization; 
using Newtonsoft.Json;

ソリューションファイルを右クリックしてプロジェクトの依存関係を確認し、共通のプロパティ->プロジェクトの依存関係で、エラーがスローされたプロジェクトを確認するか、ソリューションが依存しているプロジェクト名を確認してください
ashish Vicky

0

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

  1. NuGetパッケージマネージャーに移動します。

  2. 更新を選択します(左側のパネルから)

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

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


0

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


0

VS 2019でASP.NETプロジェクトに問題がありました。

別の症状は、一部の参照(System.Web.Http)がプロジェクト参照リスト(ソリューションエクスプローラー)で障害があるとマークされたことです

私の解決策:

  1. Project-> Referencesで誤った参照を削除します(右クリック、...)
  2. ビルド
  3. 「タイプまたは名前空間名[...]が見つかりませんでした」などのビルドエラーに移動します。
  4. [潜在的な修正を表示]を使用して、パッケージをインストールします。

原因:

csprojファイルの違いを見ると、問題の原因がわかります誰かがWindowsプログラムファイルフォルダー内のDLLを参照できました!

<Reference Include="System.Web.Http">
  <HintPath>..\..\..\..\..\..\Program Files (x86)\Microsoft ASP.NET\ASP.NET MVC 4\Packages\Microsoft.AspNet.WebApi.Core.4.0.30506.0\lib\net40\System.Web.Http.dll</HintPath>
</Reference>
<Reference Include="System.Web.Mvc, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
  <SpecificVersion>False</SpecificVersion>
  <HintPath>..\..\..\..\..\..\Program Files (x86)\Microsoft ASP.NET\ASP.NET MVC 4\Packages\Microsoft.AspNet.Mvc.4.0.30506.0\lib\net40\System.Web.Mvc.dll</HintPath>
</Reference>
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.