我正在寻找 .Net 项目的跨平台构建系统。 Phantom看起来很有趣,但是我想知道它是否可以在带有Mono的Linux上运行良好。 它建立在Boo之上。 似乎Boo在Mono(http://www.mono-project.com/Boo)中有一些支持,但我对此了解不多。
我可以在 Mono/Linux 设置上使用 Phantom 吗?
我刚刚测试过它。虽然它是一个很好的候选者,但它在(至少我的)Linux 机器上不能 100% 开箱即用。我能够使用 xbuild 编译它(你不能在库中用幻影.exe来编译它,因为它太旧了,无法从 Mono 的角度来看进行重要的检查)。Phantom的许多单元测试都通过了,但不是全部,无法真正判断它们是否是核心功能。大小写也存在一些问题,主要是NuGet.exe,这些问题可以使用MONO_IOMAP来解决。所以总的来说,如果你正在寻找经过测试并且已经工作的东西,我不会推荐它(还!-从github可以看到Linux至少被尝试支持)。
我可以为您提供两种替代解决方案:
- xbuild
- 不适用
xbuild相当于Mono的MSBuild。它在大多数情况下运行良好,尽管并非实现了 MSBuild 中存在的所有功能。sln/proj 格式也用于 MonoDevelop 和 Visual Studio。对于许多项目来说,它已经足够好了,例如,这是Mooege项目使用的,也是我大部分时间使用的。
NAnt 是相当成熟、积极开发的构建系统,采用类似 Ant 的方法,因此当需要更复杂的构建时,它可能适合您。