Mono 支持
Mono 框架是一个用于在 Windows 和基于 Unix 的平台上运行 .NET 应用程序的备选框架。
如需更多信息,请参考 Mono 官方网站。
受支持的构建运行程序
TeamCity 支持在 Mono 框架以及 .NET Frameworks 下使用 NAnt 和 MSBuild 运行器进行 .NET 构建。 (MSBuild 在 Mono 中作为 xbuild)。
NuGet 运行程序在代理上安装了 Mono 时,支持 Linux 和 macOS。 请注意,仅支持在 Mono 4.4.2+ 上的 NuGet CLI 3.2+。
测试报告任务 也在 Mono 下得到支持。
Mono 平台检测
当构建代理启动时,它会自动检测 Mono 安装。
在每个平台上,Mono 检测与 NAnt 检测相兼容。 查看 NAnt.exe.config
以了解 NAnt 上的框架检测。
代理属性
当代理方自动检测到 Mono 时,将设置以下属性:
Mono—— 指向 mono 可执行文件的路径(Mono JIT)
MonoVersion — Mono 版本
MonoX.Z—— 如果存在,则设置为
MONO_ROOT / lib / mono / X.Z
MonoX.Z_x64 — 如果存在并且 Mono 架构是 x64,则设置为
MONO_ROOT / lib / mono / X.Z
MonoX.Z_x86 — 如果存在并且 Mono 架构是 x86,那么请设定为
MONO_ROOT / lib / mono / X.Z
。
如果无法自动检测到 Mono 的安装(例如,您已将 Mono 框架安装到自定义目录中),您可以通过在 代理配置文件 中手动设置这些属性,使其对构建运行程序可用。
Windows 特性
在 Windows 下自动检测 Mono 框架具有以下特点:
Mono 版本是从
HKLM\SOFTWARE\Novell\Mono\DefaultCLR
读取的。框架路径是从
HKLM\SOFTWARE\Novell\Mono\%MonoVersion%
中提取的。平台架构是通过分析
mono.exe
来检测的。
macOS 特性
该框架会自动从
/Library/Frameworks/Mono.framework/Versions
中检测到。选择的是最高版本。
框架路径是从
/Library/Frameworks/Mono.framework/Versions/%MonoVersion%/lib/mono
提取的。平台架构被固定为 x86 ,因为 Mono 官方版本只支持 X86 。
自定义 Linux / Unix 的特定细节
在 Unix 下自动检测 Mono 框架具有以下特点:
Mono 版本是从
pkg-config --modversion mono
读取的。框架路径从
pkg-config --variable=prefix mono
和pkg-config --variable=libdir mono
中提取出来。通过分析
PREFIX/bin/mono
可执行文件,来检测平台架构。 您可以通过在PATH
的开头添加PREFIX / bin
目录并更新PKG_CONFIG_PATH
(在pkg-config(1)
中描述)来强制从自定义位置检测 Mono,使用的是PREFIX/lib/pkgconfig
。