1. ホーム
  2. asp.net

[解決済み] MVC4 Web API でファイルまたはアセンブリ 'System.Net.Http, Version=2.0.0.0' を読み込めなかった。

2023-02-20 22:55:56

質問

ちょっと変な問題があるんです。

私は MVC 4 と新しい Web API を使用してアプリを開発し、それはローカルで正常に動作しました。 サーバーに MVC4 をインストールし、アプリをデプロイしました。今、次のようなエラーが表示されます。

ファイルまたはアセンブリ 'System.Net.Http, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' またはその依存関係の 1 つを読み込むことができません。位置付けられたアセンブリのマニフェスト定義が、アセンブリ参照と一致しません。(HRESULT: 0x80131040 からの例外)

説明 現在の Web 要求の実行中に処理されない例外が発生しました。エラーの詳細と発生場所については、スタックトレースを確認してください。

面白いことに、私のパッケージ フォルダーまたは ASP.NET MVC 4Assemblies フォルダーにローカルにある System.Net.Http のバージョンは 1.0.0.0 です。 実際にプロジェクトからSystem.Net.Httpへの参照を削除しましたが、まだ同じメッセージが表示されます。どこから 2.0.0.0 の参照を取得するのか、なぜローカルでは動作するがサーバーでは動作しないのか、少し混乱しています。

nuget の依存関係を見ています。

ASP.NET WEb API Core Libraries (Beta) は System.Net.Http.Formatting に依存します。

また、System.Net.Http.Formatting は、System.Net.Http.Formatting に依存しています。

というところからきているのでしょう。しかし、私はこのパッケージのバージョン 2.0.20126.16343 をインストールしており、それはちょうど中の dll がバージョン 1.0.0.0 であることです。

私は何かを見逃しているのでしょうか。

UPDATEです。

これは別のASP.NETアプリのサブアプリなのですが、もう一方のアプリはやはりWebFormsをベースにしています。だから、何かが台無しにされています。しかし、私が web.config のアセンブリ セクションの下でクリーンを行う場合、アプリ自体ももう見つけることができません。

どのように解決するには?

私は、アプリを Appharbor にデプロイする際に同じ問題が発生しました。問題は、.NET 4.5 をまだサポートしていないことです。私は何をしましたか。

  1. 私のプロジェクトを .NET 4.0 プロファイルに切り替えた。
  2. Web API NuGet パッケージをアンインストールしました。
  3. Web API (Beta) NuGet パッケージを再インストールしました。
  4. .csproj ファイルが参照されるすべてのアセンブリを含むことを確認し、GAC ではなく Bin フォルダーから常にそれを取得するようにしました。