What is the correct build system to use with Mono and multiple projects with dependencies, excluding MonoDevelop?

StackOverflow https://stackoverflow.com/questions/256396

  •  05-07-2019
  •  | 
  •  

Question

In a prior question, I asked about using xbuild to compile a solution file, only to be told it doesn't work for that. NAnt seems a little out of date. What other options are there? I need something that supports dependencies across multiple projects.

Was it helpful?

Solution

I am using mono-trunk (mono 2.6) and xbuild is definitely far more capable now.

OTHER TIPS

I asked a similar question:

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

And the answer (until xbuild is complete) is mdtool.

I'm not sure there's only one correct build system to use. :-)

I know that the Mono team uses make to build MonoDevelop and that MonoDevelop uses make under the covers to build projects created by MonoDevelop (http://tirania.org/blog//texts/md-build.html).

That said, there's also xBuild (http://www.mono-project.com/Microsoft.Build) which is an MSBuild compatible build engine created by the mono team. That might actually be the best tool as it would allow you to build your projects under Microsoft's .NET platform in addition to Mono. This link (http://go-mono.com/forums/#nabble-td15680662) talks about MD moving towards MSBuild also.

xBuild used to be crap until 5 months ago.

I don't know if that changed, but judging from the fact the MonoDevelop still won't use it, I'd say it's still the same.

I highly doubt any official mono build contains a functional xbuild.

mdtool IMO is a very bad solution, esp. for people like me building mono apps on remote servers that don't and WILL NOT have the GUI frameworks required to get mdtool installed.

What I did find to be a working solution is to let MonoDevelop generate automake scripts for you and continue to hack them by hand.

It actually wasn't that bad as it may sound and I even made some mono app to sync up the items from the .csproj to the Makefile.am files.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top