【发布时间】: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