2

我正在使用 TFS 2010,并且开始尝试设置持续集成构建。为此,我使用了DefaultTemplate.xml配置为Code Analysisset as的默认构建模板 () Always

一切正常......除非它没有。当构建中出现错误(或测试失败)时,TFS 报告中唯一可用的错误如下

无法读取代码分析输出报告。确保目录是可写的(默认是项目输出目录)。

只有在没有代码分析的情况下才报告原始错误。无错误时,正确输出代码分析报告。

有任何想法吗?

4

3 回答 3

5

关于“无法读取代码分析输出报告”错误:

  • 如果在 Visual Studio 中编译时发生,可能是生成的日志文件路径太长(Ref)
  • 如果在 TFS 构建中编译时发生这种情况,那是因为项目包含不需要的元素<CodeAnalysisLogFile><CodeAnalysisInputAssembly> (Ref)

在我们的解决方案中,每个项目都会导入一个 Common.Targets 文件——我打算覆盖这些文件,从而避免所有未来项目的问题。

于 2012-06-05T10:18:07.337 回答
1

我期望的是以下内容:

  • 代码分析关闭,没有错误:构建很好
  • 代码分析关闭,构建错误:工作流程不期望生成代码分析文件,显示原始错误,OK。
  • 代码分析,没有错误:生成分析输出,一切正常。
  • Code analysis on, build error:由于构建错误,没有执行代码分析,没有生成输出文件。但是,工作流希望找到一个输出文件,但它没有找到,这成为构建异常中记录的主要错误,隐藏了原始错误。

因此,请检查构建模板中项目的顺序,看看这是否适用并更改它以确保在发生构建错误时不会出现代码分析输出。

于 2011-09-13T19:28:02.467 回答
0

我已经在我们的 CI 服务器上构建了一个并行的 msbuild 解决方案(/m 开关),并且发生了同样的错误(其他文件锁定特定错误,例如:该进程无法访问文件 xyz,因为它正在被另一个进程使用)。结论:删除 /m 因为它不安全 :-(

于 2012-09-19T14:23:13.207 回答