VS2012运行代码分析出错

Posted

技术标签:

【中文标题】VS2012运行代码分析出错【英文标题】:Error Running Code Analysis in VS2012 【发布时间】:2012-09-25 17:56:39 【问题描述】:

我在尝试编译 MVC4 Web 项目时收到以下两个错误:

CA0058 错误运行代码分析 CA0058:找不到引用的程序集“DotNetOpenAuth.AspNet,版本=4.0.0.0,文化=中性,PublicKeyToken=2780ccd10d57b246”。此程序集是分析所必需的,并由以下位置引用:C:\Users\bflynn\Visual Studio Sites\mnp\bin\mnp.dll、C:\Program Files (x86)\Microsoft ASP.NET\ASP.NET Web Pages\ v2.0\Assemblies\Microsoft.Web.WebPages.OAuth.dll。 [错误和警告](全局)

CA0001 错误运行代码分析 CA0001:读取模块“Microsoft.Web.WebPages.OAuth”时遇到以下错误:无法解析程序集引用:DotNetOpenAuth.AspNet,版本=4.0.0.0,文化=中性,PublicKeyToken= 2780ccd10d57b246。 [错误和警告](全局)

我最近将DotNetOpenAuth.AspNet 包添加到应用程序中,它似乎与此相关。我已经清理、重建、打开/关闭程序、卸载/重新安装包,但错误仍然存​​在。

【问题讨论】:

你检查过你项目中的引用吗? 是的 - 没有任何遗漏。就像我提到的那样,我已经删除并重新安装了几次包/引用。不走运:( 我只是在输入同样的问题。 【参考方案1】:

我也遇到了。

不要将 DOA 升级到 4.1

看起来 aspnet dll 引用了特定版本。尽管它的 .nuspec 文件说 4.0+ 还可以...

解决方案:

Uninstall-Package - 强制每个 DotNetOpenAuth 包(核心 /aspnet /oauth/openid 等)

安装包 DotNetOpenAuth.AspNet -Version 4.0.4.12182

【讨论】:

卸载包 dotnetopenauth –RemoveDependencies 是一种更快的方法【参考方案2】:

我用这个来解决这个问题:

1. Uninstall-Package Microsoft.AspNet.WebPages.OAuth –RemoveDependencies
2. Install-Package DotNetOpenAuth.AspNet -Version 4.0.4.12182
3. Install-Package Microsoft.AspNet.WebPages.OAuth

【讨论】:

【参考方案3】:

前几天我遇到了同样的问题并报告了它http://aspnetwebstack.codeplex.com/workitem/443

【讨论】:

【参考方案4】:

2012 年 9 月 21 日报告了问题。(http://aspnetwebstack.codeplex.com/workitem/443)

它已于 2013 年 6 月 5 日关闭,并带有以下信息:

MVC 的下一个版本将不再依赖 DotNetOpenAuth。使用以下推荐的解决方法。

所以我使用了解决方法https://***.com/a/12847018/1016682

【讨论】:

【参考方案5】:

Code Analysis error Could not load file or assembly 'System.Net.Http, Version=2.0.0.0 in MVC4 Web API

见姚的回答。我发现的唯一真正适用于此的解决方案。

【讨论】:

【参考方案6】:

我遇到了同样的问题。虽然代码分析问题得到了解决,但由于以下错误,Web 应用程序无法运行。

无法加载文件或程序集“DotNetOpenAuth.AspNet”或其依赖项之一。找到的程序集的清单定义与程序集引用不匹配。 (HRESULT 异常:0x80131040)

原来在卸载过程中没有清理 web.config。 我必须在 runtime/assemblyBinding 部分下的 web.config 中删除以下dependentAssembly。

 <runtime>
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
      <dependentAssembly>
        <assemblyIdentity name="DotNetOpenAuth.Core" publicKeyToken="2780ccd10d57b246" />
        <bindingRedirect oldVersion="0.0.0.0-4.3.0.0" newVersion="4.3.0.0" />
      </dependentAssembly>
      <dependentAssembly>
        <assemblyIdentity name="DotNetOpenAuth.AspNet" publicKeyToken="2780ccd10d57b246" />
        <bindingRedirect oldVersion="0.0.0.0-4.3.0.0" newVersion="4.3.0.0" />
      </dependentAssembly>
      <dependentAssembly>
      </dependentAssembly>
    </assemblyBinding>
  </runtime>

详情可阅读http://www.bigcode.net/2013/07/error-running-code-analysis-in-vs2012.html

【讨论】:

以上是关于VS2012运行代码分析出错的主要内容,如果未能解决你的问题,请参考以下文章

VS2012怎么写C语言编译出错啊

VS2008中的代码分析(FxCop)功能在哪里?

VS2012 与 Fxcop 中的代码分析

VS2015运行VS2012的代码,出现这个错误,朋友的电脑运行没问题。

代码分析—“CA0052 没有选择要分析的目标”(VS2012)

效能分析——词频统计器(第二版)