.net FxCop和代码分析规则

.net FxCop和代码分析规则,.net,visual-studio,teamcity,code-analysis,fxcop,.net,Visual Studio,Teamcity,Code Analysis,Fxcop,我最近开始在VisualStudio的项目中使用代码分析。我已经创建了一个自定义规则集,用于包含两个Microsoft定义的规则集的所有项目。我一直在努力将FxCop集成到CI构建过程中,以使未通过所有规则的构建失败。对我来说真正奇怪的是,我不能使用我的规则集来定义FxCop扫描代码的规则。如何使Visual Studio的代码分析规则与FxCop的规则相匹配?对于我们的CI构建,我们有一个特殊的构建配置(除了标准的调试和发布),其中包括运行代码分析(“我记得的RunCodeAnalysis”M

我最近开始在VisualStudio的项目中使用代码分析。我已经创建了一个自定义规则集,用于包含两个Microsoft定义的规则集的所有项目。我一直在努力将FxCop集成到CI构建过程中,以使未通过所有规则的构建失败。对我来说真正奇怪的是,我不能使用我的规则集来定义FxCop扫描代码的规则。如何使Visual Studio的代码分析规则与FxCop的规则相匹配?

对于我们的CI构建,我们有一个特殊的构建配置(除了标准的调试和发布),其中包括运行代码分析(“我记得的RunCodeAnalysis”MSBuild任务)和选项“将警告视为错误”。因此,如果我们有一个FxCop错误,并且它使用与VS相同的规则集,那么构建就会失败。这样,您就不需要使用FxCopCmd,并且可以共享规则集。但是您必须手动将此生成配置添加到解决方案的每个项目中。

您已经有了一个规则集文件,我认为您已经了解了如何在项目中集成并通过Visual Studio加以利用

您可以在
FxCopCmd.exe
中使用相同的规则集文件:

FxCopCmd.exe /out:Violations.xml /ruleset:=Custom.ruleset /file:MyAssembly.dll

我用詹金斯做了这个,效果很好。不带任何参数运行
FxCopCmd.exe
,您应该会看到所有可用命令行开关的说明。

我是否完全遗漏了一些东西,或者在Visual Studio的FxCop standalone和代码分析中真的没有办法共享相同的规则?!!!!你似乎确实错过了什么。您试图如何从CI构建运行FxCop?我正在使用TeamCity运行它,它运行FxCopCmd.exe。我有一个FxCop项目文件,其中列出了目标,独立的FxCop列出了规则,但似乎没有一种简单的方法来共享在visualstudio中设置的代码分析所使用的相同规则。一切正常,在VS2010中,独立FxCop和代码分析之间似乎没有任何直接共享规则的方式。非常奇怪,我在查找/ruleset选项的文档时遇到了很多麻烦,但它成功了。谢天谢地,我遗漏了一些东西:-)。你能举一个规则集文件语法的例子吗。我没有太多的运气让它工作。@mikelong:使用规则集文件的语法如我的回答所示。您的具体问题是什么?Bernard,也许我遗漏了什么,但我不确定Custom.ruleset文件的内容应该是什么样子。@mikelong:在Visual Studio或FxCop GUI应用程序中创建规则集文件。