Roslyn SDK 在本地找不到 nuget 包

Roslyn SDK cannot locate the nuget package locally

我正在尝试在声纳中为 C# 编写自定义规则。在做了一些研究之后,了解了如何编写规则并与声纳集成。有关参考,请查看 post .

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

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

我已经编写了有效的分析器代码 fine.I 我有 .nupkg 文件,它是在构建项目后生成的。 现在我想为声纳生成一个插件。因此,当我通过以下命令 运行 生成器工具时:

RoslynSonarQubePluginGenerator /a:AnalyzerExample.1.0.6971.18074.nupkg

我收到以下错误:

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

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

Screenshot of the error

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

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

RoslynSonarQubePluginGenerator /a:AnalyzerExample

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

RoslynSonarQubePluginGenerator /a:AnalyzerExample:1.0.6971.18074