【问题标题】:Builds work on build machine through TFS/Team Build but not TeamCity通过 TFS/Team Build 而不是 TeamCity 在构建机器上构建工作
【发布时间】:2012-03-09 02:25:28
【问题描述】:

我是 TeamCity 的新手,所以请温柔

我已经在构建服务器上设置了 teamcity。 .net 在通过 Visual Studio Team Builds 启动时构建工作,但在通过 Teamcity 启动时不构建工作(通过单击管理中的运行按钮以及签入)。

构建失败并出现加载类似的参考错误,例如.. 用户控件\ucCalendar.cs

(19, 11): error CS0246: The type or namespace name 'AxMSACAL' could not be found (are you missing a using directive or an assembly reference?)
followed by our own objects which have not been created due to other errors.
DAL\OrderItemCollection.cs

(31, 16): error CS0246: The type or namespace name 'OrderItem' could not be found (are you missing a using directive or an assembly reference?)

我理解这些错误的含义,但我显然遗漏了一些基本的东西,因为我不明白为什么它在通过 TFS/Team Build 在构建机器上构建时可以正常工作,但在 teamcity 上却失败了......

  • 两者都使用相同的物理构建机器
  • 两者都使用相同的来源:来自 TFS
  • 两者都使用 MSBuild 构建解决方案
  • 源包含 dll 等的外部引用目录

导致这些错误的 TeamCity 与 TFS/TB 有何不同?

任何指针都会非常有帮助。 干杯

【问题讨论】:

  • 您使用什么构建运行器在 Teamcity 上启动构建?
  • @the_joric - 构建运行器是 MSBuild
  • 而您只是运行您的解决方案?然后我建议转到您的构建代理文件夹并从那里运行 msbuild。您将看到缺少哪些文件,并能够相应地更改您的构建设置。

标签: c# msbuild continuous-integration teamcity


【解决方案1】:

你可以尝试的事情:

  1. 确保您的 TFS VCS 设置正确,您需要附加 TFS VCS 根目录,然后使用以下语法添加 Checkout 规则:

    +:path/to/ProjectFolder=>.
    +:path/to/libary=>library/path
    

    这会将您的项目文件夹的内容检出到 agent.work.dir/buildNumber,并将您的库检出到 agent.work.dir/buildNumber/library/path。

  2. 打开 Visual Studio 并检查对您的库的引用,然后转到 buildmachine 并打开 /buildNumber(您将在 TeamCity->Agents->(TeamCityAgent)->Agent 参数中找到路径。查找您的库并查看 TeamCity 已将其签出到何处。

  3. 如果安装了 VS,在 buildmachine (agent.work.dir)/buildNumber 上打开已签出的解决方案也可能会有所帮助。你应该看看你的引用在哪里关闭

【讨论】:

  • 我实际上没有 任何 退出规则,所以我猜这很糟糕 :) 目前正试图弄清楚我需要放什么,所以我会以另一种方式回来。仅供参考,我们在服务器上没有 VS,因为我们使用 MSBuild 作为构建代理,据我所知,我们不需要......
  • 据我所知,如果您尝试运行 MSTest,则构建机器上需要 VS。但是,我同意 the_joric,转到您的代理文件夹并使用参数 /v:d 直接运行 msbuild(更详细)。然后相应地添加结帐规则
【解决方案2】:

通常,这是 TeamCity 无法找到构建服务器/开发人员系统上存在的东西,但在 TeamCity “干净”地重新创建构建环境时不存在。这正是我们使用它的原因,以捕捉这些类型的“它建立在我的系统上!”错误。

TeamCity 是否以正确的顺序构建 AxMSACAL 项目?如果是第 3 方组件,它会被 TeamCity 拉下吗?

【讨论】:

  • 嗨,当我有一个项目引用然后该项目引用了一些在“干净”构建输出中不存在的 dll 时,我似乎遇到了与您描述的类似的问题,这似乎是对我来说,团队城市中的错误。如果您找到了解决方案,我很高兴?
  • @Jason 最好打开一个新问题。在我们这边,我们确保机器是最新的并且构建依赖是“正确的”。
猜你喜欢
  • 2012-09-10
  • 2012-02-15
  • 2023-04-11
  • 2011-01-07
  • 2011-06-20
  • 1970-01-01
  • 1970-01-01
  • 2013-01-01
  • 1970-01-01
相关资源
最近更新 更多