我一直在做一些研究.
我找到的是一个非常好的样本列表,但对于其他语言here.
我也看了sonar-dotnet.但它看起来与其他实现不太相似.
最后,说实话可能是我的最后一次机会,我快速浏览了FxCop自定义规则,我不确定什么是正确的方法.
我想要做的只是一个基本的c#规则,可以像this predefined by sonar一样进行审核.
我的意思是,使用不合规代码和合规解决方案.
解决方法:
您指出的声纳自定义规则示例都是用Java编写的,并使用Java编写的解析器来处理各种目标语言.
C#和VB.NET的声纳-netnet分析器使用Microsoft提供的Roslyn framework用C#编写.
如果你想为C#编写自己的自定义规则,那么编写Roslyn分析器绝对是最简单的方法(Roslyn取代了现在已经过时的FxCop).但是,有许多免费的第三方Roslyn分析器可用,所以有人可能已经编写了至少一些你想要的规则.看看NuGet,看看有什么可用.
接下来,您希望Roslyn分析器提出的问题出现在SonarQube中.如果您使用的是新版本的SonarQube(v7.4),SonarScanner for MSBuild(v4.4)和SonarC#插件(v7.6),那么第三方Roslyn分析器引发的问题将自动导入为有关详细信息,请参阅docs.
通用问题有一些重大限制,就像无法选择在SonarQube UI中运行的规则一样.如果您想要更全面的体验(或者如果您使用的是较旧版本的SonarQube),您可以使用SonarQube Roslyn SDK生成包装Roslyn分析器的自定义SonarQube插件.使用SDK非常简单:它是针对Roslyn分析器运行的exe,它会为您生成一个SonarQube插件jar.