2016-07-16 125 views
33

Visual Studio 2015コミュニティとSQLのみを使用してクリーンなWindows 10マシンにプロジェクトをコピーしましたServer 2016 Expressがインストールされていること。 Windows 10とVS2015またはSQL Serverがインストールされているものとは別のフレームワークバージョンがインストールされているわけではありません。ファイルまたはアセンブリを読み込めませんでした "System.Net.Http、Version = 4.0.0.0、Culture = neutral、PublicKeyToken = b03f5f7f11d50a3a"

私はWEBAPIプロジェクトを開始しようとすると、私はメッセージが表示されます。

は、ファイルまたはアセンブリ「System.Net.Http、バージョン= 4.0.0.0、文化=中立、な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:\プログラムファイル(x86の)\リファレンスアセンブリ\マイクロソフト\ Framework.NETFramework \ v4.6.1 \ System.Net.Http.dll

C:へSystem.Net.Http.Formattingポイントの

ファイルのパス\開発\ MyAppに\パッケージ\ Microsoft.AspNet.WebApi.Client.5.2.3 \ libに\ net45 \ System.Net.Http.Formatting.dll

プロジェクト全体が4.5.1をターゲットにするか、正しいアセンブリを参照する別の方法が必要ですか?

+0

を動作するはずcsprojファイルから切り取ら上記を削除しますか? –

+0

関連:http://stackoverflow.com/questions/19491860/could-not-load-file-or-assembly-system-web-http-4-0-0-after-update-from-2012-to –

+0

試したすべての示唆された答えは、その質問です。これまでのところ何も働かない。また、私が使用しているすべてのnugetパッケージに対して 'update-package xxx -reinstall'を実行しました。どちらもうまくいきません。 –

答えて

67

私のweb.config(またはapp.config)のバインディング情報を変更する - 私のビューの "ハック"中に、NuGetパッケージのアップデートがアプリケーションを驚かせた後にプロジェクトを進めることができ、システム.Net.Httpエラー。

設定NEWVERSION =「4.0.0.0」

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

私はAzureに配備されました。連続して展開すると、OPに記載されている正確なエラーが表示され、サーバ上のweb.configを調整して、この正確な答えが私の問題を解決しました。しかし、私はなぜそれが初めて働いたのか分かりません。私は、展開間の依存関係を混乱させませんでした。 – bkwdesign

+1

私の問題を解決しました。ありがとうございます、1000サムをアップ これを解決しようとしている間にされている – user1505015

+0

これは私が考えることができる他のほとんどすべてを試した後、私のために働いた。 –

3

私は同じ問題を持っており、唯一の方法私はそれを修正することができていますかtripletdad99 @書いたかapp.confingにbindingRedirectを追加することです。

しかし、あなたがもっと多くのプロジェクトを持つソリューションを持っていれば、本当にすべてのプロジェクトを手作業で更新する必要があります(また、いくつかの場合は、再度アップデートする必要があります)。そして、それはすべてのapp.configs場合、私は簡単なpowershellスクリプトを書いた理由です。

param(
    [string]$SourceDirectory, 
    [string]$Package, 
    [string]$OldVersion, 
    [string]$NewVersion 
) 

Write-Host "Start fixing app.config in $sourceDirectory" 
Write-Host "$Package set oldVersion to $OldVersion and newVersion $NewVersion" 
Write-Host "Search app.config files.." 
[array]$files = get-childitem $sourceDirectory -Include app.config App.config -Recurse | select -expand FullName 
foreach ($file in $files) 
{ 
    Write-Host $file 
    $xml = [xml](Get-Content $file) 
    $daNodes = $xml.configuration.runtime.assemblyBinding.dependentAssembly 
    foreach($node in $daNodes) 
    { 
     if($node.assemblyIdentity.name -eq $package) 
     { 
      $updateNode = $node.bindingRedirect 
      $updateNode.oldVersion = $OldVersion 
      $updateNode.newVersion =$NewVersion 
      Write-Host "Fix" 
     } 
    } 
    $xml.Save($file) 
} 

Write-Host "Done" 

の使い方例:

./scripts/FixAppConfig.ps1 -SourceDirectory "C:\project-folder" -Package "System.Net.Http" -OldVersion "0.0.0.0-4.3.2.0" -NewVersion "4.0.0.0" 

は、おそらくそれは完全ではなく、誰かが事前に構築タスクにそれをリンクしている場合も、それは良くなります。

7

私のプロジェクトの1つでは、System.Net.Httpのより高いバージョンのナゲットパッケージがありました。私のスタートアッププロジェクトでは、System.Net.Http v 4.0を参照しています。0、私は起動プロジェクトにをインストールしました。問題は解決しました。

0

.netフレームワークのバージョンを確認してください。
オリジナルの.netフレームワークは古いバージョンです。
.Net Framework 4.6をインストールした後、この問題は自動的に解決されます。

1

私はこれを持っていましたが、バインディングリダイレクトを更新したNuGetパッケージを追加したためです。パッケージを削除すると、リダイレクトはまだそこに残っていました。私はそれらのすべてを削除してから、update-package -reinstallを実行しました。これにより正しいリダイレクトが追加されました。

4

次の手順に従って、最新バージョンに

  1. 更新Visual Studioは
  2. csprojファイルに以下を追加web.configファイルからすべてのバインディングリダイレクトを削除する(重要):

<PropertyGroup> <AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
<GenerateBindingRedirectsOutputType>true</GenerateBindingRedirectsOutputType> </PropertyGroup>

  1. ビルド。
  2. binフォルダには、(WebAppName).dll.configというファイルがあります。
  3. リダイレクトが必要です。これらは、web.configファイル
  4. にコピーし、再び
  5. それはあなたがNuGetパッケージからのWeb APIを再インストールしようとしてい
関連する問題

 関連する問題