https://bugs.winehq.org/show_bug.cgi?id=47206
--- Comment #3 from Hin-Tak Leung htl10@users.sourceforge.net --- I did a bit more digging and found a somewhat bizarre behaviour. I have intentionally removed wine-mono and installed dotnet 4.x, because vs 2015's installer requires dotnet 4.x and mono's provision is not sufficient (bug filed elsewhere). So I assume dotnet installed by vs2015 bundled should work.
I remember it did, earlier in the wine 4.x cycle. But with 4.8 staging, I needed to go into winecfg to explicitly set mscoree.dll to "native only", to get it to work now.
To summarise,
vs2005 needs native mscoree.dll, and also winecfg setting it to "native only", to make it work.
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.
(after patching for https://bugs.winehq.org/show_bug.cgi?id=46465 , as I wrote 4 months ago).