禁用特定项目的代码分析规则

时间:2014-05-05 13:05:19

标签: visual-studio visual-studio-2012 code-analysis

我们正在提供一个包含多个项目的解决方案(一些生产代码项目,一些包含我们单元测试的测试项目)。

基本上,我们希望为所有项目(包括测试项目)启用相同的代码分析规则,以使它们保持一致。不过,我只是想为我们的测试项目禁用代码分析(CA1707和CA1702)的两个规则。我可以创建一个新的.ruleset文件,其中包含与master-ruleset相同的规则,但我不想复制这些设置。让我们假设,我们决定在将来在我们的主规则集中启用规则,我希望它在我的testproject-ruleset中自动启用。

这是定义包含所有解决方案范围的通用规则的主规则集的正确方法(因此CA 1707和CA 1702将排除)并为我的生产代码设置合并规则集,使用master-ruleset作为基础还包括另外两个?

或者有没有办法定义我的主规则集以包含所有规则,然后从规则集中明确排除它们?

1 个答案:

答案 0 :(得分:4)

是的,这是可能的。规则集可以“导入”其他规则集,然后覆盖单个或多个规则的设置。可以使用http://msdn.microsoft.com/en-us/library/dd264974.aspx中“从多个现有规则集创建自定义规则集”中描述的步骤从Visual Studio UI进行配置(即使您只想导入单个规则集)。或者,可以通过手动编辑规则集文件XML来添加对导入的规则集的引用来完成此操作。 e.g:

<Include Path="SomeOtherRuleset.ruleset" Action="Default" />

有关此示例,请参阅随Visual Studio一起安装的ExtendedCorrectnessRules.ruleset文件。