为什么我的TeamCity构建失败,尽管MSBuild没有出错?

4
TeamCity已设置为构建Visual Studio解决方案,该解决方案可以由多个开发人员在本地构建。然而,当TeamCity运行构建时,它将始终失败构建,尽管MSBuild没有输出错误:
[08:49:02][Step 1/1]进程退出,代码为1 [08:49:02][Step 1/1]MSBuild输出 [08:49:02][MSBuild output] [08:49:02][MSBuild output] 183个警告 [08:49:02][MSBuild output] 0个错误 [08:49:02][MSBuild output] [08:49:02][MSBuild output]用时00:01:10.65 [08:49:03][Step 1/1]构建解决方案 (Visual Studio (sln))步骤失败
相比之下,这是本地Visual Studio的构建输出的最后几行:
54> 54>构建成功。 54> 54>用时00:00:11.37 ==========全部重新生成:46个成功,0个失败,18个跳过==========
奇怪的是,在本地找不到说“进程退出,代码为1”的行。我已经关闭每个项目的所有预/后构建事件。我已经从TeamCity的构建日志中寻找可能的罪犯,但我找不到与为什么“退出代码1”有关的任何线索。有趣的是,构建确实产生了必要的艺术品,这些艺术品是有效的!
我的构建为什么会退出代码1?
编辑回应评论:
- 使用相同版本的msbuild - 在服务器上运行命令行中的msbuild,生成具有相同结果“x个警告,0个错误”的构建日志文件。echo %errorlevel%返回0。 - 没有将警告视为错误的设置 - 我会尝试发布完整输出,但我需要先进行匿名处理。

你尝试在Teamcity的Agent主机上手动构建项目了吗?如果您能发布TC控制台的完整输出,那就太好了。 - Arpit
尝试在本地使用命令行运行msbuild,可能会得到与通过Visual Studio运行时不同的结果。另外,请确认本地运行的msbuild版本与TeamCity上的是否相同。 - Nanhydrin
see edit for answers - RoelF
1个回答

0

我能想到三个问题:

  1. 看起来TeamCity在遇到警告时会失败构建步骤 - 你能检查一下这是否是事实?

  2. 正如其他人所评论的,请尝试从命令行执行msbuild。查看TeamCity用于调用msbuild的确切命令行参数。

  3. 项目本身有“将警告视为错误”的设置,但那么msbuild将遵守这些规则。你是否自定义了你的构建?更多信息请参见this


我该如何找出TeamCity使用的确切命令行参数?在构建日志中,它调用自己的TeamCity引导程序。 - RoelF
@RoelF,你找到上面问题的答案了吗? - Krishnan
不,我们早已转向使用TFS构建系统。 - RoelF

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接