Microsoft’s next generation just-in-time compiler for .NET, RyuJIT, is now the default compiler for 64-bit applications on .NET 4.6. As Microsoft’s Bruce Forstall observes, if you have installed VS2015 Preview or newer, RyuJIT will be enabled. With this announcement comes a somewhat belated warning: if you had sampled one of the CTPs for RyuJIT, you will need to clear some settings or all .NET applications with 4.6 will fail to run.
Specifically, if you installed a CTP on your machine and then upgrade to .NET 4.6, problems will result. To have successful operations, Forstall says that “…you need to make sure the COMPLUS_AltJit
environment variable and the KLM\SOFTWARE\Microsoft\.NETFramework\AltJit
registry value do not exist.” The error message that will result if those settings remain is COR_E_EXECUTIONENGINE or “Internal CLR error”. Knowledge base article 3066367 provides more details about this problem.
When asked about this error and why it even remains on a system given the harm it creates, Forstall replied that its presence is meant to allow future CTPs for .NET to be deployed side-by-side with existing .NET .DLLs. That said, Microsoft is working on an improved implementation so that user intervention is not required to correct the error.
Note that the X86 JIT compiler in .NET 4.6 remains unchanged from previous versions.