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!

This used to ask if you wanted to hire me

But chances are I'm not available, as I'm busy shipping stuff.

I am available for conference speaking, I like talking and will do so for just T&E (and perhaps a bottle of wine or two).

I have done soft keynotes, and usually entertain/rile people in equal proportion, but prefer to talk tech as that's what I do

Email me :)

blog comments powered by Disqus


Thanx for this! Great contribution to both projects. Just what i needed for my next project ;)


How is the performance of RavenDB running on Linux?


Acceptable? I haven't done too much stress testing on it so I can't say with too much confidence.


great work!!!


Some time has passed since your article. Today, do I have to still follow your article or does TavenDB works on Linux/Mono out of the box?


I don't believe it does, sadly