2012-08-25 37 views
28

で、この問題は、このポストhttp://forums.asp.net/t/1807797.aspx/1?System+Net+Http+is+not+foundと全く同じであり、この1 on StackOverflowコード分析エラーは「ファイルまたはアセンブリをロードできませんでしたSystem.Net.Http、バージョン= 2.0.0.0 MVC4のWeb API

私はすべて持っています最新のRTMビット、.Net 4.5で新しいMVC 4を開始し、WebAPIのnugetパッケージを追加しました。そして、私のコード解析は、上記のリンクで報告されたのと同じエラーで失敗します。コード分​​析CA0058を実行

CA0058エラー:参照アセンブリ 'System.Net.Http、バージョン= 2.0.0.0は、カルチャニュートラル、PublicKeyToken = = b03f5f7f11d50a3a' が見つかりませんでした。このアセンブリは分析に必要で、C:¥Projects¥InHouse¥TimeRecorder¥StopGap¥TimeRec¥bin¥TimeRec.dll、C:¥Projects¥InHouse¥TimeRecorder¥StopGap¥packages¥Microsoft.AspNet.WebApi.Core .4.0.20710.0 \ lib \ net40 \ System.Web.Http.dll。 [エラーと警告] - (グローバル)

私はこれを見つけることができるものからは、.NET 4.5フレームワークSystem.Net.HttpとのWEBAPIのバージョンとの間に矛盾があったので、RCバージョンで起こるように見えましたSystem.Net.Http。

StackOverflow responseのその他の回答については、明らかに理由から、.Net 4.5から4.0へのダウングレードについて話していますが、これは私が推奨する解決策ではありません。

+0

この問題も発生していますが、解決策を見つけましたか? –

+0

VS 2012 RTMビットで問題を再現することはできません。私にとって奇妙なことは、MVC4のすべてのMVC4テンプレートがすでにWeb APIパッケージがインストールされていることです。なぜあなたは再びパッケージをインストールする必要がありますか? –

+0

Visual Studio 2012以降、より良い回避策は、http://stackoverflow.com/questions/17298281/using-microsoft-bcl-async-with-code-analysis-causes-errors/17935400#17935400です。 –

答えて

71

次のことを試してください:あなたのVisual Studioのエディションによって

  1. に移動します。
    • VS 2010
      %ProgramFiles(x86)%\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\FxCop
    • VS 2012
      %ProgramFiles(x86)%\Microsoft Visual Studio 11.0\Team Tools\Static Analysis Tools\FxCop
  2. オープンFxCopCmd.exe.configAssemblyReferenceResolveMode 厳密な名前からStrongNameIgnoringVersionに変更。
  3. 変更を保存し、プロジェクトを再構築します。
+0

これは私のために働いた、ありがとう! –

+0

私は 'CA0058'が私が参照していたEntityFrameworkのバージョンを見つけられなかったと不平を言っていましたが、それ以来アップグレードしていました。私はうんざりしましたが、これはツールを実行しています。私はバージョンがこの場合重要ではないと推測するつもりです。だからこれは私には良いことです。 – Chris

+1

これにより、根本的な問題ではなく症状が解決されます。私たちは他の人たちを追加することなく、この種の問題を十分に持っています! – brumScouse

2

私は同じ問題を抱えていました(紺野にローカルに、遠隔地にはできませんでした)。 この回避策は、私を助け:

は、パッケージに含まれるSystem.Net.Http.dllとSystem.Net.Http.xmlファイルをコピー\ Microsoft.Net: http://connect.microsoft.com/VisualStudio/feedback/details/760208/nuget-package-for-asp-net-mvc-4-web-api-does-not-reference-correct-net-4-5-assemblies#

ここにあなたが必要な部分があります。 Http.2.0.20710.0 \ lib \ net40ディレクトリをパッケージ\ Microsoft.AspNet.WebApi.Core.4.0.20710.0 \ lib \ net40ディレクトリにコピーします。不足しているSystem.Net.Http.dllアセンブリが参照されているSystem.Web.Http.dllアセンブリと同じ場所にあるため、コード解析では競合するSystem.Net.Httpアセンブリを適切に解決できるようになりました。

0

System.Net.Httpの新しいバージョンに依存しているため、この問題は、参照されている他のアセンブリで必要とされているものよりも深刻です。

この問題を解決する正しい方法は、問題のプロジェクトのapp.configdependentAssemblyリダイレクトを追加することです。エラーを無効にするという答えは、根底にある問題を隠すだけです。

app.configruntimeセクションに次を追加して、プロジェクトで参照されているバージョンに解決できない古いバージョンを再マップします。バージョン番号は、あなたの状況に合わせて明らかに更新されるべきです。

<runtime> 
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"> 
    <dependentAssembly> 
     <assemblyIdentity name="System.Net.Http" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" /> 
     <bindingRedirect oldVersion="1.0.0.0-2.0.0.0" newVersion="2.0.0.0" /> 
    </dependentAssembly> 
    </assemblyBinding> 
</runtime> 
+0

上記の解決策は私のためには機能しませんでしたが、 –

関連する問題