RavenDB on Mono

Published on 2010-12-14

So is it possible?

Yes, it is.

There, that was a short blog entry wasn’t it?

I’ve patched RavenDB in a few places, both to workaround the bug/mismatch between Mono and Microsoft’s implementation of ThreadLocal.Value, dealing with the standard path-based issues and adding a couple of specific checks for Mono in the outer layers of the application (Did you know that Environment.UserInteractive is always false in Mono?)

I’ve submitted the pull request, but if you really want to get RavenDB working on Mono right now, then I suggest you do the following:

MONO_IOMAP=all xbuild /property:DocumentationFile='' /property:TreatWarningsAsErrors='false' RavenDB.sln
This will build RavenDB on Mono, so you don’t need Windows if you haven’t got it.

I’ve tested the following configurations

Some caveats to this

NB: This is unofficial support for Mono, it's a low priority as far as the core project goes, but I am eager to make this work

Thanks and Attribution:

Jérémie Laval (http://twitter.com/#!/jeremie_laval) has been instrumental in moving this forwards with a heap of Mono know-how, the instructions on now to build on Mono have come from him, as have a number of fixes. He is currently working on some other issues with some failing tests too, looks like this ball is going to keep rolling!