与Mono和多个具有依赖关系的项目一起使用的正确的构建系统是什么,不包括MonoDevelop?

问题描述:

在之前的问题中,我询问了如何使用xbuild编译解决方案文件,但只是被告知它不适用于此。 NAnt似乎有些过时了。还有什么其他选择?我需要支持跨多个项目的依赖关系。与Mono和多个具有依赖关系的项目一起使用的正确的构建系统是什么,不包括MonoDevelop?

我正在使用mono-trunk(单声道2.6),现在xbuild显然更有能力。

我不确定只有一个正确的构建系统可供使用。 :-)

我知道Mono团队使用make来构建MonoDevelop,并且MonoDevelop使用make下的make来构建由MonoDevelop(http://tirania.org/blog//texts/md-build.html)创建的项目。

也就是说,还有xBuild(http://www.mono-project.com/Microsoft.Build),它是mono组创建的兼容MSBuild的构建引擎。这实际上可能是最好的工具,因为它可以让你在Mono之外的微软.NET平台下建立你的项目。这个链接(http://go-mono.com/forums/#nabble-td15680662)也谈到了迈向MSBuild的MD。

我问了一个类似的问题:

Is it possible to build MSBuild files (visual studio sln) from the command line in Mono?

而答案(直到xbuild完成)是mdtool

+0

我发现mdtool在/Applications/Monodevelop.app/Contents/MacOS,但是当我运行它,我得到这个: mdtool:行53:/ tmp目录/ build_deps /斌/单声道:没有这样的文件或目录 任何想法? – 2008-11-04 20:01:20

xBuild曾经是废话直到5个月前。

我不知道这是否改变,但从MonoDevelop仍然不会使用它的事实来看,我会说它仍然是一样的。

我高度怀疑任何官方的单声道构建包含功能的xbuild。

mdtool IMO是一个非常糟糕的解决方案,尤其是,对于像我这样的人在远程服务器上构建单声道应用程序,这些远程服务器不需要安装mdtool所需的GUI框架。

我确实发现了一个可行的解决方案,就是让MonoDevelop为您生成automake脚本并继续手动破解它们。

它实际上并没有那么糟糕,因为它可能听起来,我甚至做了一些单声道应用程序来同步项目从.csproj到Makefile.am文件。

+1

MonoDevelop支持在Makefile/Makefile.am和csproj/mdp之间同步文件列表和参考列表一段时间: http://monodevelop.com/Download/MonoDevelop_1.0_Released#Makefile_Support 我们将此用于MonoDevelop本身。我们也为MonoDevelop添加了一个选项来将构建委托给xbuild。长期计划是xbuild取代MonoDevelop的内部构建系统。 – 2009-08-03 16:18:25