有没有人有将FxCop引入遗留代码的经验?如果有人引入违反规则的代码,我们希望我们的构建失败.但就目前而言,这是不可能的,因为遗留代码有超过9000个违规行为.
抑制我所知错误的唯一方法是通过SuppressMessage属性,但这只适用于方法和GeneratedCodeAttribute.最后一个可以用于类和命名空间(如果我没记错的话),但不应该用于非生成的代码(参见这里).
现在,我们每天花一些时间来删除违规行为,但新的违规行为仍在继续,因为我们的构建不会失败.
有任何想法吗?
我一直处于类似的情况.我不久前开始在现有项目中使用FxCop,并且在开始时遇到了很多错误.我所做的是关闭所有规则,然后一次打开一个组,解决我的错误.
安全和性能小组是一个很好的起点 - 他们帮助我找到了之前我不知道的问题.有些规则是主观的,如果有的话,可能不完全适用于您的项目.例如,如果国际化不是问题,那么请关闭该组.如果存在不适用于您的特定规则(例如命名规则),请将其关闭.
如果您设法清除某个规则的一组错误,则可以将构建设置为失败,如果将来违反该规则.因此,不会出现新的错误.
如果它是某个规模的项目,请一次一个规则,查看规则的相关性/重要性,并修复错误或在不适用时关闭规则.