1

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

在列表中有一个列,其中列出了所有排除的程序集,以分号分隔。

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

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

第一个想法是

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

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

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

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

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

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

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

知道如何以简单且可维护的方式使用新规则集吗?共享点列表是代码分析规则定义的主导部分。

编辑 1

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

  • 卡号
  • 活性
  • 作为错误处理
  • 排除(包含项目名称方,如“测试”或完整的项目/程序集名称)

从列表中创建一个规则集,其中

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

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

4

1 回答 1

2

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

也就是说,我猜可能有一种更简单的方法可以实现您的愿望。但是,我不确定我是否完全理解您的最终目标,因为您的问题更多地集中在调整您现有的方法上。如果您在尝试找到适合新工具功能的方法方面需要帮助,您能否提供有关您正在尝试完成的具体目标的更多详细信息?

于 2011-10-25T12:16:24.607 回答