https://bugs.winehq.org/show_bug.cgi?id=45333
Anastasius Focht focht@gmx.net changed:
What |Removed |Added ---------------------------------------------------------------------------- Severity|critical |normal CC| |focht@gmx.net Keywords|dotnet |download, Installer Status|UNCONFIRMED |NEW Summary|Failed to install Microsoft |Add diagnostic |.NET 4.7.2 |'mscoree.dll.CorGetSvc' | |stub to hint at broken | |Microsoft .NET Frameworks | |installation (Wine-Mono not | |uninstalled and | |'mscoree.dll' placeholders | |not removed prior install) Component|msi |mscoree Ever confirmed|0 |1 URL|https://www.microsoft.com/n |go.microsoft.com/fwlink/?Li |et/download/windows |nkId=863261
--- Comment #3 from Anastasius Focht focht@gmx.net --- Hello folks,
this is technically a dupe of bug 31688 which already has quite a number of childs. We could use this ticket for improving the situation a bit though by adding more diagnostics.
@Vincent
--- quote --- You need to uninstall Wine Mono and override mscoree.dll to native before running the installer. --- quote ---
This won't help. The main problem is the presence of 'mscoree.dll' placeholder/fakedll in system32/syswow64. These will not get overwritten by .NET Framework installers hence the installation will always be messed up, regardless of 'DllOverrides' setting ('mscoree.dll' has 'native' by default which won't help here).
https://source.winehq.org/git/wine.git/blob/HEAD:/dlls/mscoree/mscoree_main....
Running triggering the native image generator service using 'ngen' (GAC update):
--- snip --- $ wine "c:\windows\Microsoft.NET\Framework\v4.0.30319\ngen.exe" update ... wine: Call from 0x7b446fe6 to unimplemented function mscoree.dll.CorGetSvc, aborting Unknown exception --- snip ---
--- snip --- ... 009c:Call KERNEL32.WideCharToMultiByte(00000000,00000000,01ca7398 L"Info 0.07/07/18 11:16:56 DDSet_Status: Checking file version of 'C:\windows\system32\mscoree.dll'",ffffffff,00000000,00000000,00000000,00000000) ret=7dda3b89 009c:Ret KERNEL32.WideCharToMultiByte() retval=00000062 ret=7dda3b89 ... 009c:Call KERNEL32.WideCharToMultiByte(00000000,00000000,01d74fd8 L"Info 0.07/07/18 11:17:20 DDSet_Warning: Not running 'C:\windows\Microsoft.NET\Framework\v4.0.30319\ngen.exe executeQueuedItems 1' because mscoree.dll is not current",ffffffff,00000000,00000000,00000000,00000000) ret=7dda3b89 ... --- snip ---
'mscoree.dll.CorGetSvc' is never called by Wine-Mono so it's safe to assume the user wanted native .NET Framework(s).
To help all the users who disregard any best practice to use 'winetricks' and try to install MS .NET Frameworks manually (or by app prerequisite installer) we should add a diagnostic stub with some hints. You need to partially replicate winetricks recipe(s) in the diagnostic to be correct.
* uninstall Wine-Mono (to get rid of .NET Frameworks installer registry data) * remove both placeholders/fakedlls
NOTE: Removing both placeholders alone is not enough, the .NET Frameworks installers will still skip that part due to registry "damage" done by Wine-Mono.
Maybe tell the users in the stub: "You appear to run MS .NET Framework(s)/apps but have Wine-Mono installed. Please use 'winetricks' to install .NET Frameworks and make sure you redo the installation in a new WINEPREFIX".
I don't know what can be further done to avoid getting these bug reports over and over again because people don't know about 'winetricks', use old 'winetricks' or willingly ignore it for whatever reasons, unaware of the implications. I guess the "nuclear" option, Wine built by default with '--disable-mscoree' is not an option as it defeats the purpose of having Wine-Mono in first place ;-)
Regards