TeamCity On-Premises 2024.03 Help

Mono 支持

Mono 框架是一个用于在 Windows 和基于 Unix 的平台上运行 .NET 应用程序的备选框架。
如需更多信息,请参考 Mono 官方网站

受支持的构建运行程序

TeamCity 支持在 Mono 框架以及 .NET Frameworks 下使用 NAntMSBuild 运行器进行 .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 框架具有以下特点:

  1. Mono 版本是从 HKLM\SOFTWARE\Novell\Mono\DefaultCLR 读取的。

  2. 框架路径是从 HKLM\SOFTWARE\Novell\Mono\%MonoVersion% 中提取的。

  3. 平台架构是通过分析 mono.exe 来检测的。

macOS 特性

  1. 该框架会自动从 /Library/Frameworks/Mono.framework/Versions 中检测到。

  2. 选择的是最高版本。

  3. 框架路径是从 /Library/Frameworks/Mono.framework/Versions/%MonoVersion%/lib/mono 提取的。

  4. 平台架构被固定为 x86 ,因为 Mono 官方版本只支持 X86 。

自定义 Linux / Unix 的特定细节

在 Unix 下自动检测 Mono 框架具有以下特点:

  1. Mono 版本是从 pkg-config --modversion mono 读取的。

  2. 框架路径从 pkg-config --variable=prefix monopkg-config --variable=libdir mono 中提取出来。

  3. 通过分析 PREFIX/bin/mono 可执行文件,来检测平台架构。 您可以通过在 PATH 的开头添加 PREFIX / bin 目录并更新 PKG_CONFIG_PATH (在 pkg-config(1) 中描述)来强制从自定义位置检测 Mono,使用的是 PREFIX/lib/pkgconfig

最后修改日期: 16日 7月 2024年