此问题与此帖http://forums.asp.net/t/1807797.aspx/1?System+Net+Http+is+not+found和此on StackOverflow
完全相同我拥有所有最新的RTM位,在.Net 4.5中启动了一个新的MVC 4,添加了WebAPI nuget包,现在我的代码分析失败,并出现与上述链接中报告的相同的错误。
CA0058运行代码分析错误CA0058:找不到引用的程序集“System.Net.Http,Version = 2.0.0.0,Culture = neutral,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。 [错误和警告] - (全球)
据我所知,RC版本似乎发生了这种情况,因为.NET 4.5框架System.Net.Http和WebApi版本的System.Net.Http之间存在冲突。
StackOverflow response关于从.Net 4.5降级到4.0的其他答案,由于显而易见的原因,这不是我首选的解决方案!
答案 0 :(得分:71)
尝试以下方法:
%ProgramFiles(x86)%\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\FxCop
%ProgramFiles(x86)%\Microsoft Visual Studio 11.0\Team Tools\Static Analysis Tools\FxCop
FxCopCmd.exe.config
并更改AssemblyReferenceResolveMode
从 StrongName 到 StrongNameIgnoringVersion 。答案 1 :(得分:5)
从Visual Studio 2012及更高版本,而不是修改安装文件,请使用此处指定的解决方法:Using Microsoft.Bcl.Async with Code Analysis causes errors。
答案 2 :(得分:2)
我遇到了同样的问题(无法在本地和远程构建天蓝色)。 这个解决方法帮助我: 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#
这是您需要的部分:
将packages \ Microsoft.Net.Http.2.0.20710.0 \ lib \ net40目录中包含的System.Net.Http.dll和System.Net.Http.xml文件复制到packages \ Microsoft.AspNet.WebApi。 Core.4.0.20710.0 \ lib \ net40目录。由于缺少的System.Net.Http.dll程序集现在与引用的System.Web.Http.dll程序集位于同一位置,因此代码分析现在可以正确解析冲突的System.Net.Http程序集。
答案 3 :(得分:0)
问题是由于您依赖于System.Net.Http
的较新版本,而不是引用的其他程序集所需的版本。
解决此问题的正确方法是将dependentAssembly
重定向添加到违规项目的app.config
。禁用错误的已接受答案只是掩盖了潜在的问题。
将以下内容添加到runtime
的{{1}}部分,以将无法解析的旧版本重新映射到项目中引用的版本。显然应该更新版本号以符合您的情况。
app.config