【问题标题】:Roslyn SDK cannot locate the nuget package locallyRoslyn SDK 无法在本地找到 nuget 包
【发布时间】:2019-06-25 21:33:39
【问题描述】:

我正在尝试在声纳中为 C# 编写自定义规则。在做了一些研究之后,对如何编写规则并与声纳集成有所了解。参考请看帖子https://stackoverflow.com/a/53889326/6499361

所以基本上我们必须遵循三个步骤来做到这一点:

  1. 使用 Roslyn 编写实时代码分析器。构建此项目将生成一个 .nupkg 文件
  2. 使用 SonarQube Roslyn SDK 生成自定义 SonarQube 插件,该插件包装 Roslyn 分析器。运行此工具将生成一个 jar。我正在使用 RoslynSDK-2.0
  3. 生成的jar文件在Sonar中作为规则使用,可以作为插件集成到sonar中

我编写了运行良好的分析器代码。我随身携带了构建项目后生成的 .nupkg 文件。 现在我想为声纳生成一个插件。因此,当我通过以下命令运行生成器工具时:

RoslynSonarQubePluginGenerator /a:AnalyzerExample.1.0.6971.18074.nupkg

我收到以下错误:

No packages with the specified id were found: AnalyzerExample.1.0.6971.18074.nupkg

我曾尝试将 .nupkg 文件放在不同的位置,如以下帖子所述:https://github.com/SonarSource/sonarqube-roslyn-sdk#configuring-nuget-feeds
当我运行 Roslyn 插件生成器时,我附上了图片。

Screenshot of the error

【问题讨论】:

    标签: c# sonarqube nuget-package roslyn roslyn-code-analysis


    【解决方案1】:

    您传递给 RoslynSonarQubePluginGenerator 的参数不太正确。

    您只需将 NuGet 包的 id 传递给生成器,而不是包文件的全名,例如

    RoslynSonarQubePluginGenerator /a:AnalyzerExample
    

    如果包有多个版本,生成器将使用最新发布的版本。如果要选择特定版本,请在命令行中添加冒号和版本,例如

    RoslynSonarQubePluginGenerator /a:AnalyzerExample:1.0.6971.18074
    

    【讨论】:

    • 找不到具有指定 id 的包:PathHardcodeAnalyzer,具有 Nuget 包 PathHardcodeAnalyzer.1.1.0.nupkg
    • @RashmiJain 你有没有弄清楚这个问题是什么?我目前遇到了同样的问题。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-01-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多