https://bugs.winehq.org/show_bug.cgi?id=47206
--- Comment #4 from Hans Leidekker hans@meelstraat.net --- (In reply to Hin-Tak Leung from comment #3)
When set to "native, then builtin", that's when the message
wine: Call from 0x7b453193 to unimplemented function mscoree.dll.GetProcessExecutableHeap, aborting
appears.
when set to "built-in" only, the expected message appears.
0030:err:mscoree:CLRRuntimeInfo_GetRuntimeHost Wine Mono is not installed
"builtin then native" also gives this expected answer:
0009:err:mscoree:CLRRuntimeInfo_GetRuntimeHost Wine Mono is not installed
So out of the 4 combinations, "native only", "built-in only", "native then builtin", "builtin then native", only "native only" works. I don't quite understand why "native then built-in" behaves differently from "native only"; and also that, AFAIK, the same wineprefix (without any special mscoree dll override), used to work earlier in the wine 4.x cycle.
With "native then builtin" Wine's builtin is loaded during installation and if it passes the version checks it will not be overwritten with a native version.
With "native only" mscoree fails to load during installation. The installer assumes it's absent and installs a native version.