C# 如何在Resharper Sonar插件中使用DotSettings导入功能?

C# 如何在Resharper Sonar插件中使用DotSettings导入功能?,c#,sonarqube,resharper,C#,Sonarqube,Resharper,Sonar的新版本(2.0)Resharper插件扩展了导入现有Resharper DotSettings文件的功能。 但是,如果在创建质量配置文件时设置了设置文件,则不会拾取其设置 我尝试使用以下简单的DotSettings文件,其中唯一的设置是禁用私有字段名的uu前缀: <wpf:ResourceDictionary xml:space="preserve" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:s="

Sonar的新版本(2.0)Resharper插件扩展了导入现有Resharper DotSettings文件的功能。 但是,如果在创建质量配置文件时设置了设置文件,则不会拾取其设置

我尝试使用以下简单的DotSettings文件,其中唯一的设置是禁用私有字段名的uu前缀:

<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">&lt;Policy Inspect="True" Prefix="" Suffix="" Style="aaBb" /&gt;</s:String>
</wpf:ResourceDictionary>

Policy Inspect=“True”Prefix=”“Suffix=”“Style=“aaBb”/
但是,即使通过指定上述DotSettings文件创建了我的质量配置文件,并使用此质量配置文件分析项目,我仍然会得到
名称“xyz”与规则“实例字段(专用)”不匹配。建议的名称为“xyz”。
错误

此外,如果我尝试从Permalinks选项卡下载质量配置文件的设置文件,它包含一系列规则,但不包含我导入的DotSettings文件中的规则

这是什么原因?我做错什么了吗

更新:我四处看了看,但我只是变得更加困惑。我已经看到一个名为“MSBuild SonarQube runner”的新版本的runner,但也有一个名为“SonarQube runner”的runner,我们一直在使用它。

所以普通的SonarQube运行程序还没有被弃用,但是对于使用Resharper的.NET项目,我们应该开始使用MSBuild SonarQube运行程序,这样我们就可以指定在运行inspectcode.exe时使用的自定义点设置文件了?或者我们应该从命令行手动运行inspectcode?

现在应该使用MSBuild SonarQube Runner分析所有的.NET项目,它是与Microsoft联合开发的,为.NET用户提供了最佳体验

因此,现在不推荐在.NET项目中使用sonar runner。对于COBOL、PL/SQL和其他许多语言(不包括C#和VB.NET),sonar runner仍然是分析项目的推荐方法

自从SonarQube ReSharper 2.0版插件发布以来,重用报告模式现在是首选模式。这意味着我们希望您启动
inspectcode.exe
并生成报告。然后,在启动MSBuild SonarQube运行程序时,将
sonar.resharper.cs.reportPath
属性设置为该报告的路径,并将
sonar.resharper.solutionFile
设置为解决方案文件的路径

以下是使用R#的命令行inspectcode.exe工具和MSBuild SonarQube运行程序分析项目的步骤:

  • inspectcode.exe/report=
    [报告路径]
    [解决方案路径]
  • MSBuild.SonarQube.Runner.exe begin/k:
    [SQ Project Key]
    /n:
    [SQ Project Name
    /v:
    [SQ Project Version]
    /d:sonar.resharper.cs.reportPath=
    [report path]
    /d:sonar.resharper.solutionFile=
    [solution path]
  • msbuild
  • MSBuild.SonarQube.Runner.exe结束
  • 您有责任使用与SonarQube中设置的设置一致的设置启动inspectcode.exe。为方便起见,SonarQube R#2.0插件允许您将规则导出到.DotSettings文件中,并提供永久链接。有关详细信息,请查看插件文档:

    现在,让我们回到原始问题,即SonarQube中的R#.DotSettings导入不起作用,存在以下几个问题:

  • 将.DotSettings文件导入SonarQube时,它将进入一个新的质量配置文件。您需要确保此新质量配置文件将用于项目分析,方法是将其设置为默认质量配置文件,或者在项目的“设置”页面中显式设置质量配置文件。您还应该导出相同的质量配置文件ew质量配置文件,以检查导入是否正常工作
  • 导入程序不理解您传递的.DotSettings文件的格式,它希望键标记以
    /Default/code检查/高亮显示/InspectionSeverities/=
    -开头,并且所有R#规则将保持禁用状态
  • SonarQube中的R#规则自定义将不起作用-保存的唯一信息是规则是否启用。导出中将不存在任何不同的自定义。在新的重用报告模式下,这将不再是阻止程序,因为您可以为inspectcode.exe提供完全自定义的.DotSettings文件(而不是局限于SonarQube生成的一个)
  • 您正在测试的一条规则似乎不存在SonarQube R#Plugin 2.0的规则集(请参阅完整列表)和

  • 我刚刚注意到我在日志中看到了
    ReSharper插件以不推荐的模式运行
    警告消息,可能是相关的?非常感谢你的回答,同时我设法在不同的地方找到了大部分信息,但是在一个地方看到一个全面的指南真是太好了。也许你应该在官方文档中包括这一点umentation,因为对我来说,新运行程序的整个情况相当混乱。另一个快速问题:我正在尝试从我的解决方案目录运行运行运行程序,在那里我生成了resharper报告(resharperresults.xml)。如果我将其指定为相对路径(
    /d:sonar.resharper.cs.reportPath=resharperresults.xml
    ),Sonar找不到该文件。它只在我指定一个绝对路径(
    /d:Sonar.resharper.cs.reportPath=C:\…\resharperresults.xml
    )时起作用,但这有点不方便。你知道原因吗?嗯,我在输出中注意到运行程序的“工作目录”是
    [我的解决方案的路径]\.sonarqube\bin\sonar runner\bin
    ,因此我尝试设置
    /d:sonar.resharper.cs.reportPath=../../../../../../resharperresults.xml
    ,现在它正在工作。这是首选方法吗?这是一个错误,将由