As some of you might already have noticed, Beta 3 of OS X 10.11 “El Capitan” shipped earlier this week, and it broke Mono. Generally speaking, Mono just does not work at all, and any attempt to run Mono executables just greets you with a message could not discover the mach TLS offset
and then hangs.
I’ve already been talking with Miguel over at Xamarin, and this isn a known issue their team is very aware of and trying to fix ASAP, and it affects everyone, not just us and Elements.
However, it does affect Elements in a few ways that i want to outline.
To start with, both the Elements compiler and CrossBox currently don’t work on El Capitan Beta 3 at all. Fire, being a native app, will run, but is very limited (because its IDE smarts depend on Mono-hosted managed code), and off course won’t be able to compile projects because the compiler runs under Mono as well.
So if you rely on Elements (and if you are reading this, you probably do), whether you develop on your Mac, or just use it for CrossBox, i suggest to hold off from updating to Beta 3 for now.
Of course the Mono team is working on a fix for this, but that too comes with a caveat. Chances are, that fix will only be avail ankle for the latest Mono trunk, 4.0.
Mono 4 has dropped support for MSBuild 3.5, which the Elements compiler currently depends on. For the next release, Elements, 8.2, we have dropped the dependency for MSBuild 3.5, but this was not a light change and has backward compatibility issues for people hosting ASP.NET sites with Elements, which is why we decided to not make this change for the imminent Elements 8.1 update. This however means that the Elements 8.1 compiler and Fire 8.1 will probably never fully work on El Capitan (unless Apple rolls back then change that broke this), and that in order to work on El Capitan Beta 3 and later, you will need the Elements 8.2 beta we’ll be shipping soon. That is, of course, once Mono itself is fixed. (CrossBox 8.1 will be fine on Mono 4, and thus on El Capitan with a fixed Mono).
Native Cocoa apps you build with Elements are of course totally unaffected by this. Another reason to always go native, if you can!