【问题标题】:CSC error CS0006: Metadata file 'SonarAnalyzer.dll' could not be foundCSC 错误 CS0006:找不到元数据文件“SonarAnalyzer.dll”
【发布时间】:2018-11-14 17:46:13
【问题描述】:

我在 TeamCity 的构建过程中遇到了随机问题。我有两种配置:第一种用于重建 + 单元测试。其次作为工件依赖,使用 SonarQube 分析器。当 Teamcity 执行第一次配置时,我每 5-10 次构建都会收到随机错误消息:

CSC 错误 CS0006:元数据文件 'E:\TeamCity\buildAgent2\temp\buildTmp\.sonarqube\resources\0\Google.Protobuf.dll' 找不到

CSC 错误 CS0006:元数据文件 'E:\TeamCity\buildAgent2\temp\buildTmp\.sonarqube\resources\0\SonarAnalyzer.CSharp.dll' 找不到

CSC 错误 CS0006:元数据文件 'E:\TeamCity\buildAgent2\temp\buildTmp\.sonarqube\resources\0\SonarAnalyzer.dll' 找不到

错误是完全随机的 - 当我再次运行进程而没有任何更改时,错误就消失了。当我检查 buildTmp\.sonarqube 目录时,无论构建是否成功,那里什么都没有。

我的项目中没有对这些库的任何引用,我的重建步骤与 SonarQube 无关。我们在 VisualStudio 2017 中使用 SonarLint,但再一次,我们的 *.csproj 文件中没有对 SonarQube 的任何引用。

【问题讨论】:

  • 请检查之前扫描的所有进程是否被杀死。当上一次扫描不成功并且某些进程(来自上一次扫描)仍在运行时,我曾经遇到过此类问题。每次开始扫描时,它都会创建临时文件夹并将分析仪复制到该目录中。对于您的情况,似乎无法创建该文件夹或其他进程仍在使用该目录。
  • @Sarker 好的,但我怎样才能做到这一点?如何确保先前构建的所有进程都被杀死?
  • 只要确保之前的扫描没有异常终止即可。
  • 有些人建议删除.sonarscanner 文件夹,但这对我不起作用。相反,我必须通过暂时禁用有故障的构建代理来完全使用另一个构建代理

标签: msbuild sonarqube teamcity


【解决方案1】:

我通过删除整个 .sonarqube 文件夹解决了这个问题。

【讨论】:

  • 我在两个地方清空了.sonarqube 文件夹:在我的应用程序项目文件夹下和%temp% 文件夹下。这对我有用。
猜你喜欢
  • 2015-11-22
  • 2018-05-21
  • 1970-01-01
  • 1970-01-01
  • 2017-01-29
  • 2013-01-07
  • 2021-04-08
  • 2017-06-01
  • 1970-01-01
相关资源
最近更新 更多