Godot: Godot 3.0 not working with Mono 5.8

Created on 8 Feb 2018  路  9Comments  路  Source: godotengine/godot

Godot version:
3.0

OS/device including version:
Windows 7

Issue description:
Using Mono 5.8.0.108 leads to following error:

Your mono runtime and class libraries are out of sync.
The out of sync library is: C:\Program Files\Mono\lib\/mono/4.5/mscorlib.dll

When you update one from git you need to update, compile and install
the other too.
Do not report this as a bug unless you're sure you have updated correctly:
you probably have a broken mono install.
If you see other errors or faults after this message they are probably related
and you need to fix your mono install first.
ERROR: The build method threw an exception.
System.MissingMethodException: Attempted to access a missing method.
At: modules\mono\editor\godotsharp_builds.cpp:488

Using Mono 5.4.1.7 just works fine

Steps to reproduce:
Install Mono 5.8.0.108 and try to start a project

bug mono

Most helpful comment

Try replacing mono-2.0-sgen.dll in Godot folder with one from 5.8 SDK, if it won't help rebuild Godot with new Mono version.

All 9 comments

Try replacing mono-2.0-sgen.dll in Godot folder with one from 5.8 SDK, if it won't help rebuild Godot with new Mono version.

I can compile Godot with Mono 5.8 enabled, but I get a segmentation fault when creating a C# solution from the editor:

https://gist.github.com/Calinou/139974a40a9e5da4b60123b1be820f72

cbdd410 with Mono 5.8.0.108 builds and works on macOS 10.13.3: clang 900.0.39.2 (x86-64) and Debian buster/sid: clang 4.0.1-8 (x86-64 and armv7).

Tested: new project, creating C# solution, "Hello world" C# script, building and running project.

Ubuntu 18.04 custom build with mono 5.8, no problems here

Same issue on Ubuntu 16.04. Fixed by downgrading mono to 5.4

cbdd410 with Mono 5.8.0 on Windows 10: mingw-w64 5.0.3 / gcc 7.2.0 cross build (x86-64 and x86) and MSVC VS2017 15.5.3 build (x86-64 and x86), 64-bit versions works OK, 32-bit editor works but project crashes on start in mono_class_get_methods.

Make sure to manually remove GodotSharpTools.dll and mono sgen lib from bin folder before rebuilding, scons is not detecting mono runtime change and keep old libs.

Update:

| OS | Compiler | Arch | Result |
| ---------------------- | ------------------------ | ------- | ---------------------- |
| macOS 10.13.3 (17D47) | Xcode clang 900.0.39.2 | x86-64 | OK |
| OSX 10.9.5 (13F1911) | clang 5.0.1 | x86-64 | OK |
| Windows 10 | mingw-w64 gcc 7.2.0 | x86-64 | OK |
| Windows 10 | mingw-w64 gcc 7.2.0 | x86 | Crash on project start |
| Windows 10 | VS 2017 15.5.3 | x86-64 | OK |
| Windows 10 | VS 2017 15.5.3 | x86 | Crash on project start |
| Debian buster/sid | clang 4.0.1 | x86-64 | OK |
| Debian buster/sid | clang 4.0.1 | x86 | OK |
| Debian buster/sid | clang 4.0.1 | armv7l | OK |
| Debian buster/sid | gcc 7.3.0 | x86-64 | OK |
| Debian buster/sid | gcc 7.3.0 | x86 | OK |

Try replacing mono-2.0-sgen.dll in Godot folder with one from 5.8 SDK, if it won't help rebuild Godot with new Mono version.

To avoid duplicate Dll in windows, I've deleted the mono-2.0-sgen.dll in the Godot folder and I've made a junction from the mono-2.0-sgen.dll file of the mono SDK (5.8) to the Godot Folder. It works like a charm.

Hey,

Similar problem on OSX.

Having more recent Mono (5.8) will cause the application to crash immediately after starting.

Installing Mono 5.4.1 fixed the issue for me.

This was fixed by #15641. Now Godot ships with mscorlib.

Was this page helpful?
0 / 5 - 0 ratings