VS2010中许多项目的CodeAnalysisRuleSet管理(主要是抑制)

时间:2011-10-22 10:25:19

标签: visual-studio-2010 code-analysis suppress

为了使用VS2005和VS2008,我们在sharepoint列表中定义了当前的ca规则。

在列表中有一列,列出所有排除的程序集semikolon sepperated。

自定义构建任务读取共享点列表,并负责在团队构建中使用“ - !CA ...”排除项目文件中的指定规则。

现在我们计划将项目迁移到VS 2010,新的代码分析规则集会产生一些问题。

第一个想法是

  • 从sharepoint创建规则集文件
  • 将GlobalSupressions.cs添加为解决方案项,并将每个项目中的文件添加为链接文件
  • 使用目标命名空间和排除
  • 在GlobalSupressions.cs中创建SupressMessage条目

我用一个项目的小解决方案进行了测试。 看起来目标命名空间不起作用。

我搜索了stackoverflow和互联网,主要答案是目标命名空间的抑制无效。

主要应用程序包含250多个项目。

对我来说,似乎唯一可行的方法是为禁用排除规则的不同项目创建n个自定义规则集。

我不想通过完整的应用程序并重新压缩代码中的所有规则。

在这种情况下,您如何使用新的规则集?

任何想法如何以简单且可维护的方式使用新规则集? sharepoint列表是代码分析规则定义的主要部分。

修改1

在以前的项目中,我们在sharepoint列表中管理代码分析规则集的定义。该列表将所有ca规则显示为列表

  • ca number
  • 激活
  • 处理为错误
  • 排除(包含项目名称方,如“测试”或完整项目/程序集名称)

从列表中创建规则集

  • 已激活+ handleAsError =已启用规则
  • !activated =禁用规则
  • 已激活+!handleAsError =警告

例如,如果排除列的值类似于“测试”,则应在所有测试项目中禁用该规则。

1 个答案:

答案 0 :(得分:2)

在VS2010中没有任何东西迫使你转向新的.ruleset文件方法。如果您愿意,您可以继续在构建中使用.fxcop项目文件或fxcopcmd.exe命令行开关,因此您的现有方法应该可以继续工作(可能经过一些小的调整)。

那就是说,我猜这可能是一种更简单的方法来实现你想要的。但是,我不确定我是否完全理解您的最终目标,因为您的问题更侧重于调整现有方法。如果您希望获得有关尝试找到适合新工具功能的方法的帮助,请提供更多有关您正在尝试完成的内容的详细信息?