【问题标题】:Building C# (Mono) Solution from GitHub with TeamCity on CentOS在 CentOS 上使用 TeamCity 从 GitHub 构建 C# (Mono) 解决方案
【发布时间】:2014-09-03 03:34:02
【问题描述】:

我正在尝试让 TeamCity 在 CentOS 上为我自动构建,但是如果我创建一个运行器类型为“MSBuild”,我会收到以下错误

Failed to start MSBuild.exe. Failed to find msbuild.exe at path: /usr/lib/mono/4.0/xbuild.exe

我尝试了 'Visual Studio (sln)' 的运行器类型,将 Visual Studio 设置为 2012 并收到以下错误

No enabled compatible agents for this build configuration.

当我查看我的代理要求时,我看到:

Unmet requirements: DotNetFramework4.5_x86 exists

老实说,我不知道可能出了什么问题。 Mono 已在这台机器上启动并运行,因为它托管了一个使用 Mono 构建的网站。请有更多经验的人告诉我我做错了什么?

[编辑]

我刚刚尝试创建 xbuild 实际所在位置与 TeamCity 所需位置的符号链接。

ln -s /usr/bin/xbuild /usr/lib/mono/4.0/xbuild.exe

我现在在构建日志中收到以下错误,所以我认为它不喜欢符号链接。

[MSBuild output] Cannot open assembly '/usr/lib/mono/4.0/xbuild.exe': File does not contain a valid CIL image.

【问题讨论】:

  • 您是否尝试过阅读以下内容:confluence.jetbrains.com/display/TCD8/Mono+Support 他们对单声道支持的看法?
  • 我确实读过,但对我来说,这似乎是改变 Mono 居住位置的一种方式。路径是 Mono 本身的正确路径,但是 xbuild 的路径不是,在我机器上的 xbuild 之上是“xbuild”而不是“xbuild.exe”。是否可以更改只查找 xbuild 的位置?
  • 我已经通过使用参数调用命令行解决了这个问题,但是我会保持这个问题的开放,因为我想知道我的原始问题是否有解决方案。

标签: mono centos teamcity


【解决方案1】:

我可以通过在构建代理的 buildAgent.properties 文件中添加一个环境变量来解决这个问题。找到该文件后,在环境变量部分添加如下内容:

env.MSBuild=/usr/local/lib/mono/xbuild/12.0/bin/ 

我在 ubuntu 上执行此操作,因此路径可能与您要查找的路径不同。

【讨论】:

  • 我不知道为什么我以前从未想过这个,但它确实很有魅力!显然路径因操作系统而异,但解决方案保持不变,谢谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-08-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-09-22
  • 2011-12-24
相关资源
最近更新 更多