c# – CA1502的自定义阈值

有没有办法更改CodeAnalysis规则的阈值?

特别是,当方法的代码复杂度超过20时,我们希望Build失败.不幸的是,规则CA1502的阈值为25:

The rule reports a violation when the cyclomatic complexity is more than 25.

我们可以改变这个吗?

最佳答案 是的,这是可能的.不幸的是,为可配置规则提供自定义规则设置的唯一方法是通过.fxcop项目文件,由于处理规则集和项目文件的顺序,该文件无法与VStudio无缝集成.基本上,如果要同时使用规则集文件和项目文件,则需要在项目文件中包含所有规则库文件的列表,并禁用规则.然后,您将能够通过规则集控制是启用还是禁用规则.完成所有设置之后,您可以使用如下设置部分调整圈复杂度规则的设置(假设您可以将所有阈值设置为20):

<Settings>
    <Rule TypeName="AvoidExcessiveComplexity">
        <Entry Name="Warning Threshold">20</Entry>
        <Entry Name="Information Threshold">20</Entry>
        <Entry Name="Critical Warning Threshold">20</Entry>
        <Entry Name="Critical Error Threshold">20</Entry>
        <Entry Name="Error Threshold">20</Entry>
        <Entry Name="Recommended Threshold">20</Entry>
    </Rule>
</Settings>
点赞