1. ホーム
  2. c#

[解決済み】ファイルまたはアセンブリ "System.Net.Http, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" を読み込めなかった。

2022-04-05 12:06:11

質問

Visual Studio 2015 CommunityとSQL Server 2016 ExpressだけがインストールされたクリーンなWindows 10マシンに、プロジェクトをコピーしました。Windows 10とVS2015またはSQL Serverとともにインストールされたものを除いて、他のフレームワークのバージョンはインストールされていません。

WebApiプロジェクトを起動しようとすると、メッセージが表示されます。

ファイルまたはアセンブリ "System.Net.Http, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" あるいはその依存関係の 1 つをロードできませんでした。システムは指定されたファイルを見つけることができません。

このプロジェクトのパッケージには

<package id="Microsoft.AspNet.WebApi" version="5.2.3" targetFramework="net45" />
<package id="Microsoft.AspNet.WebApi.Client" version="5.2.3" targetFramework="net45" />
<package id="Microsoft.AspNet.WebApi.Core" version="5.2.3" targetFramework="net45" />
<package id="Microsoft.AspNet.WebApi.Tracing" version="5.2.3" targetFramework="net45" />
<package id="Microsoft.AspNet.WebApi.WebHost" version="5.2.3" targetFramework="net45" />

.NET Framework 4.6.1でプロジェクトをビルドした後。 System.Net.Http にファイルが見つからず bin フォルダーに格納されます。

ファイルのパスが指す先。

C:♪Program Files (x86)♪♪Reference Assemblies♪♪MicrosoftFramework.NETFrameworkv4.6.1♪♪System.Net.Http.dll

のファイルのパスは System.Net.Http.Formatting を指しています。

C:³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³³.dll

プロジェクト全体が 4.5.1 をターゲットとすべきなのか、それとも正しいアセンブリを参照する別の方法があるのでしょうか?

どのように解決するのですか?

以下の手順に従ってください。

  1. ビジュアルスタジオを最新バージョンに更新する(重要)。
  2. からすべてのバインディングリダイレクトを削除します。 web.config
  3. に追加します。 .csproj ファイルを作成します。

    <PropertyGroup>
      <AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
      <GenerateBindingRedirectsOutputType>true</GenerateBindingRedirectsOutputType>
    </PropertyGroup>
    
    
  4. プロジェクトのビルド
  5. bin フォルダに (WebAppName).dll.config ファイル
  6. リダイレクトが含まれているはずなので、これを web.config
  7. を削除します。 .csproj ファイル

動作するはずです