Sonar的Resharper插件的新版本(2.0)扩展了导入现有Resharper DotSettings文件的功能。 但是,如果在创建质量配置文件时设置了设置文件,则不会选择其设置。
我尝试使用以下简单的DotSettings文件,其中唯一的设置是禁用私有字段名称的_前缀:
<wpf:ResourceDictionary xml:space="preserve" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:s="clr-namespace:System;assembly=mscorlib" xmlns:ss="urn:shemas-jetbrains-com:settings-storage-xaml" xmlns:wpf="http://schemas.microsoft.com/winfx/2006/xaml/presentation">
<s:String x:Key="/Default/CodeStyle/Naming/CSharpNaming/PredefinedNamingRules/=PrivateInstanceFields/@EntryIndexedValue"><Policy Inspect="True" Prefix="" Suffix="" Style="aaBb" /></s:String>
</wpf:ResourceDictionary>
但即使在通过指定上述DotSettings文件创建我的质量配置文件并使用此质量配置文件分析项目之后,我仍然会收到Name 'xyz' does not match rule 'Instance fields (private)'. Suggested name is '_xyz'.
错误。
另外,如果我尝试从Permalinks选项卡下载我的质量配置文件的设置文件,它包含一堆规则,但它不包含我在导入的DotSettings文件中的规则。
这是什么原因?我做错了吗?
更新:我环顾四周,但我更加困惑。我已经看到一个名为&#34; MSBuild SonarQube Runner&#34;的跑步者的新版本,但也有一个名为&#34; SonarQube Runner&#34;到目前为止我们一直在使用 因此,正常的SonarQube Runner尚未被弃用,但对于使用Resharper的.NET项目,我们应该开始使用MSBuild SonarQube Runner,我们将能够指定在运行inspectcode时使用的自定义DotSettings文件。可执行程序?或者我们应该从命令行手动运行inspectcode? p>
答案 0 :(得分:3)
现在应该使用MSBuild SonarQube Runner来分析所有.NET项目,这是与Microsoft共同开发的,它为.NET用户提供了最佳体验。
因此,现在不推荐使用声纳项目来运行.NET项目。对于COBOL,PL / SQL和其他许多其他语言(不包括C#和VB.NET),声纳 - 跑步者仍然是分析项目的推荐方法。
自SonarQube ReSharper版本2.0插件发布以来,重用报告模式现在是首选。这意味着我们希望您启动inspectcode.exe
并生成报告。然后,在启动MSBuild SonarQube Runner时,将sonar.resharper.cs.reportPath
属性设置为该报告的路径,并将sonar.resharper.solutionFile
设置为解决方案文件的路径。
以下是使用R#命令行inspectcode.exe工具和MSBuild SonarQube Runner分析项目的步骤:
[report path]
[solution path]
[SQ Project Key]
/ n:[SQ Project Name
/ v:[SQ Project Version]
/d:sonar.resharper.cs.reportPath={{1} } /d:sonar.resharper.solutionFile = [report path]
您有责任使用与SonarQube中设置的设置一致的设置启动inspectcode.exe。为了简化这一过程,SonarQube R#2.0插件允许您将规则导出到.DotSettings文件中并提供永久链接。有关详细信息,请查看插件的文档:http://redirect.sonarsource.com/plugins/resharper.html
现在,让我们回到你原来的问题,即SonarQube中的R#.DotSettings导入无效,有几个问题:
[solution path]
开头 - 并且所有R#规则将保持禁用状态。