c# – 将Visual Studio 2015规则集导出/导入SonarQube
环境:我们正在Visual Studio 2015中构建C#代码,并使用Visual Studio 2015中提供的默认规则集生成CodeAnalysis报告.
问题陈述:在将SonarQube与我们的持续集成环境Jenkins集成在一起的同时,我们正在获得不同的代码分析报告,所以我们要导入Visual Studio 2015的默认规则集,以在SonarQube 5.6或更高版本中使用(我准备好升级声纳如果有解决方案).但是问题是SonarQube无法识别从CS开始的规则集,如 <Rules AnalyzerId="Microsoft.CodeAnalysis.CSharp" RuleNamespace="Microsoft.CodeAnalysis.CSharp"> <Rule Id="AD0001" Action="Error" /> <Rule Id="CS0028" Action="Error" /> <Rule Id="CS0078" Action="Error" /> <Rule Id="CS0105" Action="Error" /> <Rule Id="CS0108" Action="Error" /> <Rule Id="CS0109" Action="Error" /> 我已经安装了以下插件: > C#代码分析器 解决方法
简短的答案:没有支持这样做的方法.但是你可以尝试一下来解决这个问题.
长答案 您需要解决多个问题: >您可能用于将分析结果推送到SonarQube服务器的MsBuild的SonarQube扫描仪正在从SQ服务器中拉下活动规则.然后,它通过ruleset参数传递到msbuild中的CoreCompile任务.所以即使你创建了自己的,那将被删除参数,并改为声纳一个. 目前我不认为这些问题有一个简单的解决方案.一般的建议是创建你的SQ插件,它定义所有的CS *规则.将这些规则纳入规则集文件(可能在begin和build阶段之间),解析输出json文件并将结果发送到服务器.这可以工作,但这是一个很大的任务,有很多地方可以去干草. 另一种方法是看看SonarQube Roslyn SDK.这个SDK让我们从Roslyn nuget分析仪中创建一个SonarQube插件.如果你创建了这样一个插件,你会看到它嵌入了2-3个XML文件.这些文件描述了插件的规则.为了支持你的情况我会: >创建一个具有一个规则的Roslyn分析器包. (其中没有报告任何问题.) (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |