MSBuild 无法找到 FxCop 二进制文件

Posted

技术标签:

【中文标题】MSBuild 无法找到 FxCop 二进制文件【英文标题】:MSBuild is unable to locate the FxCop binaries 【发布时间】:2013-10-31 01:18:31 【问题描述】:

当我构建项目时,出现以下错误。如何解决这个问题?

错误消息:为了对托管二进制文件执行代码分析,MSBuild 需要启动 FxCop。 。确保已安装 Visual Studio Team Edition for Software Developers 或 Visual Studio Team Suite 并从“Visual Studio 命令提示符”中运行 MSBuild

【问题讨论】:

在我问你一些问题之前我已经回答了,你想运行 FxCop 吗?如果是,您是否已将其安装在构建服务器上?如果您不希望 FxCop 运行,请按如下所述更改属性。 【参考方案1】:

找到答案。在我的解决方案中,规则集位于如下所示的共享网络位置。

<CodeAnalysisRuleSet>\\someserver\aa\bb.ruleset</CodeAnalysisRuleSet>
<RunCodeAnalysis>true</RunCodeAnalysis>

如果您没有正确的凭据来访问网络位置,您将收到此错误。所以请确保 \someserver\aa\bb.ruleset 可从您的计算机访问。如果不 去运行并输入 \\someserver\ 并在提示登录窗口时输入您的凭据。 (特别是如果您来自另一个域,跨域登录可能会失败)。登录后,下次visual studio就可以愉快的访问网络路径了。

【讨论】:

只能访问规则集。但是对于每条规则,它都需要加载相应的DLL文件(进行分析的真实代码),我认为这不可能在网络上的共享位置上。【参考方案2】:

****编辑***

如果这不是您想要的,这将永久禁用代码分析。不要使用它。

打开项目文件并替换此属性

<RunCodeAnalysis>true</RunCodeAnalysis>

with 

<RunCodeAnalysis>false</RunCodeAnalysis>

【讨论】:

这将永久禁用代码分析。所以不是完美的解决方案。

以上是关于MSBuild 无法找到 FxCop 二进制文件的主要内容,如果未能解决你的问题,请参考以下文章

FXcop 和 Msbuild 与 CruiseControl.NET

MSBuild 中的 FxCop 和禁用 CA0060 异常

TeamCity - MSBuild 代码分析

FxCop 不尊重我的排除

是否可以在未安装 VS 的情况下从 MSBuild 命令行运行 FxCop 代码分析?

如何在所有开发者之间共享 FxCop 规则?