pixeltris / USharp

C# plugin for Unreal Engine 4
MIT License
411 stars 67 forks source link

Hotreload on Mac (Mono) is broken #78

Open pixeltris opened 5 years ago

pixeltris commented 5 years ago

Hotreload works by using FileSystemWatcher to watch for changes made to the C# game dll. Mono uses a libmono-native-compat.dylib to implement some of this functionality. Currently it crashes when trying to load the dylib (fails to find a symbol in the dyld_stub_binder call?). This is possibly due to a bad configuration of the embedded Mono. I have had this issue previously but it looks like the .dylib files have possibly been shuffled around so I'm no longer sure what the solution is.

For now use .NET Core if you want to hotreload. Or hotreload manually using the USharpRuntime reload command in the UE4 command box.

pixeltris commented 5 years ago

This is probably somewhat related to https://github.com/mono/mono/issues/12557. If the dylib isn't found at all the Method has no body error is shown. If it is found the crash occurs. The dylib is possibly out of date? Or corrupt?