【问题标题】:SonarLint KeyNotFoundExceptionSonarLint KeyNotFoundException
【发布时间】:2016-07-01 00:26:34
【问题描述】:

我在使用 Sonar 分析 C-sharp 代码库时看到一个奇怪的错误。

14:59:19.350 信息 - 适用于 Visual Studio 版本 1.3.0.0 的 SonarLint 14:59:20.154 错误 - 14:59:20.337 错误 - 未处理的异常:System.Collections.Generic.KeyNotFoundException:给定的密钥不是 出现在字典中。 14:59:20.338 错误 - 在 System.Collections.Immutable.ImmutableDictionary`2.get_Item(TKey 键) 14:59:20.340 错误 - 在 SonarLint.Runner.Configuration.AddAnalyzerCommentRegularExpression(生成器 建设者) 14:59:20.341 错误 - 在 SonarLint.Runner.Configuration.Analyzers() 14:59:20.341 错误 - 在 SonarLint.Runner.Program.Main(String[] args)

谁能帮我确定异常指的是什么键?

【问题讨论】:

  • 是否可以选择升级 C# 插件?自 SonarLint 1.3 版本以来有 6 个新版本。
  • 驱动分析的配置文件中似乎缺少一个条目。您的 .sonarqube/conf 文件夹中应该有一个 SonarLint.xml 文件。你能检查一下属于这个模板规则的部分(注释正则表达式,S124)吗?
  • @Tamas-SonarSourceTeam 查看我的更新,您的意思是 SonarLint.xml 应该在 Sonar 服务器上还是在执行分析的机器上?

标签: c# sonarqube sonarlint sonarlint-vs


【解决方案1】:

我使用的 Sonar 服务器在许多团队之间共享,因此更新插件可能会出现问题。

我找不到名为 SonarLint.xml 的文件,我在我正在分析的项目目录中的 .sonar/ 中的一个名为 analysis-input.xml 的文件中找到了对 S124 的引用。

<Rule>
  <Key>S124</Key>
  <Parameters>
    <Parameter>
      <Key>RuleKey</Key>
      <Value>ToDo</Value>
    </Parameter>
  </Parameters>
</Rule>

【讨论】:

  • 谢谢。在我看来,这个 XML 缺少一些额外的参数,所以我很想说文件生成器中存在错误。如果您无法更新插件,那么我会说您需要在质量配置文件中禁用此规则才能不进入 XML。 (顺便说一句,在较新版本的 C# 插件中,我们放弃了对该模板规则的支持,并为“TODO”和“FIXME”cmets 实现了单独的规则)
  • 非常感谢@Tamas-SonarSourceTeam 禁用该规则已修复崩溃。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-07-12
相关资源
最近更新 更多