【问题标题】:TeamCity ambiguous build failureTeamCity 模棱两可的构建失败
【发布时间】:2013-06-06 16:13:04
【问题描述】:

我在构建 TeamCity 时遇到问题。当我在本地构建项目时,它可以正确编译,但是,当 TeamCity 运行时,构建失败并出现错误 Build failure condition: Process exited with code 1

我有两个独立的项目,它们的故障情况相同,我什至不知道如何开始诊断问题。一个项目是通过 Visual Studio 2010 创建的 C# 库(我使用 VS 解决方案来编译该项目),另一个是使用 Xamarin Studio 完成的。

用于编译代码的 Xamarin Studio 构建步骤使用该行(忽略换行符):

"C:\Program Files (x86)\Xamarin Studio\bin\mdtool.exe" build
"--project:MyProject" 
"%teamcity.build.checkoutDir/MySolution.sln"

两个项目都在构建代理上编译(通过 Visual Studio 或命令行命令在本地编译时)。有没有办法让构建代理(即服务运行)在本地运行构建配置并从那里进行测试或什么?

【问题讨论】:

    标签: c# visual-studio-2010 .net-4.0 xamarin-studio teamcity-7.1


    【解决方案1】:

    您收到的错误只是 MSBuild 过程的返回值。为了调试构建过程,您需要真正运行它——这意味着以与构建运行器相同的方式,而不是在您的开发环境中进行本地调试构建。按照步骤here 将 MSBuild 日志记录增加到详细并将其保存到您以后可以检查的位置。

    如果您的应用程序相当复杂或有很多依赖项,您可能需要花费几个小时编写构建脚本或编辑项目文件。如果您编写构建脚本,只需更改 TC 中的构建任务以执行构建脚本。这通常是我对 TC 使用的方法,因为编辑项目文件会影响您的本地调试版本。

    【讨论】:

    • 对于Visual Studio项目,错误是NUnit没有正确运行:
    • 注意:这是原始笔记。我错过了 Xamarin 项目的文件......我觉得那个文件很愚蠢。对于 Visual Studio 项目,错误是 NUnit 没有正确运行:我得到的错误是没有找到程序集。我目前有一个运行 NUnit 测试的构建步骤;指向 %teamcity.build.checkoutDir%***.dll。没有这一步,一切正常。
    • @BlazePhoenix 好的,所以修复起来应该不会太糟糕。这也是少数密切相关的问题之一。 1) 没有正确调用 NUnit 测试运行器(即使用包含测试夹具/案例的 dll 的正确路径),2) 测试运行器根本不在构建系统/放置位置上或 3) 某种组合前两个像 NUnit 测试运行器的路径在 TC 构建步骤中或在您的本地系统上是错误的,它是您的 ENV Vars 的一部分,它不在构建系统上,因此无法找到它。
    • 好的,我明白你所说的答案 1 是什么意思。对于答案 2,你是说我必须包含 NUnit 组件来运行测试或包含测试的库吗? (我认为该库将与其他库一起构建,因为它是构建过程的一部分)。至于答案 3,我发现有人搜索过为 NUnit 设置环境变量,但我现在不确定我究竟为该变量设置了什么。
    • @BlazePhoenix 为了在构建过程中成功运行 NUnit 测试,NUnit 测试运行器必须位于删除二进制文件的服务器上。您可以在 TC 中使用 DLL 的路径设置变量,也可以将其附加到服务器上的 PATH 变量中。为了确保它正常工作,我会尝试在构建服务器的命令行上手动启动 NUnit。如果您可以手动完成,那么添加一个构建步骤来完成它不会很困难。
    猜你喜欢
    • 2019-03-15
    • 2020-01-19
    • 2019-09-10
    • 2019-06-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多