Cannot revert to .Net 3.5 (Mono 2.0) build

Regardless of how hard I try, I cannot get Unity to go back to the .Net 3.5 Framework.

From my editor log:

Initialize mono
Mono path[0] = ‘/Applications/Unity/Unity.app/Contents/Managed’
Mono path[1] = ‘/Applications/Unity/Unity.app/Contents/Mono/lib/mono/2.0’
Mono config path = ‘/Applications/Unity/Unity.app/Contents/Mono/etc’

-----Compiler Commandline Arguments:
Filename: /Applications/Unity/Unity.app/Contents/MonoBleedingEdge/bin/mono
Arguments: ‘/Applications/Unity/Unity.app/Contents/MonoBleedingEdge/lib/mono/4.5/mcs.exe’ @ /UnityTempFile-d726fd46e71d14e6b9e6f879503937fa

Why is it compiling with MonoBleedingEdge if I specified in my player settings to use 3.5?

I need this to be fixed, because I’m getting the dreaded forever compiling spinner whenever I make a change in Rider while the editor is open. In other words, the second compile (after clearing my ScriptAssemblies folder) always hangs.

Out of desperation, I’ve even tried monkey-patching the 2.0 directories into 4.5, and I’m stuck on mscorlib.dll not found. I just need to revert to 3.5 because the number of bugs and the completely flakey building in 4.5 is utter madness. Please advise.

I have no 4.5 assemblies.

The complete editor log in 4.5, which hangs unless I delete ScriptAssemblies:

[Package Manager] Server::Start – Port 59546 was selected
Launching external process: /Applications/Unity/Unity.app/Contents/Resources/Upm/upm-macos

COMMAND LINE ARGUMENTS:
/Applications/Unity/Unity.app/Contents/MacOS/Unity
[warn] kq_init: detected broken kqueue; not using.: Undefined error: 0
[warn] kq_init: detected broken kqueue; not using.: Undefined error: 0
[warn] kq_init: detected broken kqueue; not using.: Undefined error: 0
[warn] kq_init: detected broken kqueue; not using.: Undefined error: 0
Unable to parse YAML file: [mapping values are not allowed in this context] at line 1

(Filename: /Users/builduser/buildslave/unity/build/Runtime/Serialize/TransferFunctions/YAMLRead.cpp Line: 194)

[warn] kq_init: detected broken kqueue; not using.: Undefined error: 0
[warn] kq_init: detected broken kqueue; not using.: Undefined error: 0
2018-01-17 20:42:16.134 Unity Helper[27668:2250263] XType: failed to connect - Error Domain=NSCocoaErrorDomain Code=4099 “The connection to service named com.apple.fonts was invalidated.” UserInfo={NSDebugDescription=The connection to service named com.apple.fonts was invalidated.}
2018-01-17 20:42:16.135 Unity Helper[27668:2250263] Font server protocol version mismatch (expected:5 got:0), falling back to local fonts
2018-01-17 20:42:16.135 Unity Helper[27668:2250263] XType: unable to make a connection to the font daemon!
2018-01-17 20:42:16.135 Unity Helper[27668:2250263] registering /System/Library/Fonts/, /System/Library/Fonts/Base/, and /Library/Fonts/* locally
2018-01-17 20:42:17.913 Unity Helper[27668:2250263] XType: unable to find LucidaGrande in registry. This will likely wreak havoc!
Unable to parse YAML file: [mapping values are not allowed in this context] at line 1

(Filename: /Users/builduser/buildslave/unity/build/Runtime/Serialize/TransferFunctions/YAMLRead.cpp Line: 194)

Unable to parse YAML file: [mapping values are not allowed in this context] at line 1

(Filename: /Users/builduser/buildslave/unity/build/Runtime/Serialize/TransferFunctions/YAMLRead.cpp Line: 194)

Unable to parse YAML file: [mapping values are not allowed in this context] at line 1

(Filename: /Users/builduser/buildslave/unity/build/Runtime/Serialize/TransferFunctions/YAMLRead.cpp Line: 194)

/Users/bberman/Documents/Spellsource-Client
Loading GUID ↔ Path mappings…0.001625 seconds
Loading Asset Database…0.042540 seconds
Audio: FMOD Profiler initialized on port 54900
AssetDatabase consistency checks…0.119567 seconds
Refreshing native plugins compatible for Editor in 8.82 ms, found 0 plugins.
Preloading 0 native plugins for Editor in 0.00 ms.
[Package Manager] Resolving 3 packages:
[Package Manager] * Package : com.unity.ads@1.0.7
(location: /Users/bberman/Library/Unity/cache/packages/packages.unity.com/com.unity.ads@1.0.7)
[Package Manager] * Package : com.unity.analytics@1.0.1
(location: /Users/bberman/Library/Unity/cache/packages/packages.unity.com/com.unity.analytics@1.0.1)
[Package Manager] * Package : com.unity.purchasing@1.0.1
(location: /Users/bberman/Library/Unity/cache/packages/packages.unity.com/com.unity.purchasing@1.0.1)
[Package Manager] Resolve completed
IsTimeToCheckForNewEditor: Update time 1516253238 current 1516250540
Initialize engine version: 2017.2.1p1 (edf5bdf50eb0)
GfxDevice: creating device client; threaded=1
2018-01-17 20:42:20.183 Unity[27663:2250126] Color LCD preferred device: AMD Radeon Pro 460 (high power)
2018-01-17 20:42:20.184 Unity[27663:2250126] Metal devices available: 2
2018-01-17 20:42:20.184 Unity[27663:2250126] 0: Intel(R) HD Graphics 530 (low power)
2018-01-17 20:42:20.184 Unity[27663:2250126] 1: AMD Radeon Pro 460 (high power)
2018-01-17 20:42:20.184 Unity[27663:2250126] Using device AMD Radeon Pro 460 (high power)
Initializing Metal device caps: AMD Radeon Pro 460
Initialize mono
Mono path[0] = ‘/Applications/Unity/Unity.app/Contents/Managed’
Mono path[1] = ‘/Applications/Unity/Unity.app/Contents/Mono/lib/mono/2.0’
Mono config path = ‘/Applications/Unity/Unity.app/Contents/Mono/etc’
Using monoOptions --debugger-agent=transport=dt_socket,embedding=1,defer=y,address=0.0.0.0:56663
Begin MonoManager ReloadAssembly
Initializing Unity.PackageManager (PackageManager) v2017.2.1 for Unity v2017.2.1p1
Registering precompiled unity dll’s …
Register platform support module: /Applications/Unity/PlaybackEngines/AndroidPlayer/UnityEditor.Android.Extensions.dll
Register platform support module: /Applications/Unity/PlaybackEngines/iOSSupport/UnityEditor.iOS.Extensions.dll
Register platform support module: /Applications/Unity/PlaybackEngines/WindowsStandaloneSupport/UnityEditor.WindowsStandalone.Extensions.dll
Register platform support module: /Applications/Unity/Unity.app/Contents/PlaybackEngines/MacStandaloneSupport/UnityEditor.OSXStandalone.Extensions.dll
Registered in 0.012630 seconds.
Refreshing native plugins compatible for Editor in 0.63 ms, found 3 plugins.
Preloading 1 native plugins for Editor in 15.48 ms.
Mono: successfully reloaded assembly

  • Completed reload, in 1.603 seconds
    Registering platform support modules:
    Registered platform support modules in: 0.110721s.
    Native extension for OSXStandalone target not found
    Native extension for WindowsStandalone target not found
    [usbmuxd] Start listen thread
    [usbmuxd] Listen thread started
    [usbmuxd] Send listen message
    Native extension for iOS target not found
    Native extension for Android target not found
    Begin MonoManager ReloadAssembly
    Registering precompiled user dll’s …
    Registered in 0.142395 seconds.
    Refreshing native plugins compatible for Editor in 0.71 ms, found 3 plugins.
    Preloading 1 native plugins for Editor in 0.46 ms.
    Mono: successfully reloaded assembly
  • Completed reload, in 1.184 seconds
    Initializing Unity.PackageManager (PackageManager) v2017.2.1 for Unity v2017.2.1p1
    Registering platform support modules:
    Registered platform support modules in: 0.074465s.
    Native extension for OSXStandalone target not found
    Native extension for WindowsStandalone target not found
    Native extension for iOS target not found
    Native extension for Android target not found
  • Starting compile Library/ScriptAssemblies/Assembly-CSharp-firstpass.dll

We always compile managed code using the C# compiler from MonoBleedingEdge. It uses a new compiler but still references the proper APIs (.NET 2.0, etc). It has been like this since Unity 5.6 I believe.

I am not sure what is causing your hang but this is correct behavior to use the compiler from this location.

I am not sure what is causing my hang either. The editor logs certainly aren’t telling me.

Try to sample the process using Activity Monitor.

If you look at processes hierarchically in Process Monitor are there any child processes under Unity still running?