Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/328.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# CA1502的自定义阈值_C#_Code Analysis - Fatal编程技术网

C# CA1502的自定义阈值

C# CA1502的自定义阈值,c#,code-analysis,C#,Code Analysis,有没有办法更改代码分析规则的阈值 特别是,当一个方法的代码复杂度超过20时,我们希望我们的构建失败。不幸的是,规则的阈值为25: 当圈复杂度大于25时,该规则报告一个冲突 我们能改变这个吗?是的,这是可能的。不幸的是,为可配置规则提供自定义规则设置的唯一方法是通过.fxcop项目文件,由于规则集和项目文件的处理顺序,该文件无法与VStudio无缝集成。基本上,如果希望同时使用规则集文件和项目文件,则需要在禁用规则的情况下在项目文件中包含所有规则库文件的列表。然后,您将能够通过规则集控制规则是启用

有没有办法更改代码分析规则的阈值

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

当圈复杂度大于25时,该规则报告一个冲突


我们能改变这个吗?

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


20
20
20
20
20
20

CA1502规则还没有Roslyn端口,因此唯一的实现是如上所述配置的“遗留”端口。
<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>