[Bug 45333] Add diagnostic 'mscoree.dll.CorGetSvc' stub to hint at broken Microsoft .NET Frameworks installation ( Wine-Mono not uninstalled and 'mscoree.dll' placeholders not removed prior install)

wine-bugs at winehq.org wine-bugs at winehq.org
Sat Jul 7 05:37:25 CDT 2018


https://bugs.winehq.org/show_bug.cgi?id=45333

Anastasius Focht <focht at gmx.net> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Severity|critical                    |normal
                 CC|                            |focht at 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 at 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.c#l219

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

-- 
Do not reply to this email, post in Bugzilla using the
above URL to reply.
You are receiving this mail because:
You are watching all bug changes.



More information about the wine-bugs mailing list