https://bugs.winehq.org/show_bug.cgi?id=45333
Anastasius Focht focht@gmx.net changed:
What |Removed |Added ---------------------------------------------------------------------------- Summary|Add diagnostic |Add diagnostic |'mscoree.dll.CorGetSvc' |'mscoree.dll.CorIsLatestSvc |stub to hint at broken |' stub (NGEN service) to |Microsoft .NET Frameworks |hint at broken Microsoft |installation (Wine-Mono not |.NET Frameworks |uninstalled and |installation (Wine-Mono not |'mscoree.dll' placeholders |uninstalled and |not removed prior install) |'mscoree.dll' placeholders | |not removed prior install) Status|NEW |RESOLVED Resolution|--- |FIXED Fixed by SHA1| |27f2f4199fde170a1ff2b309050 | |6ad3c9e6d1bfa
--- Comment #7 from Anastasius Focht focht@gmx.net --- Hello folks,
the NGEN service side now prints diagnostics.
https://source.winehq.org/git/wine.git/commitdiff/27f2f4199fde170a1ff2b30905...
Thanks Louis.
NOTE: MSI (CA) server is currently broken/regressed for 64-bit WINEPREFIXes, so a broken .NET installation can't be tested there.
Prepare a broken 32-bit WINEPREFIX:
--- snip --- $ wineserver -k $ rm -rf .wine $ export WINEARCH=win32 $ wineboot
$ wine uninstaller --list {BB9BDB97-C247-4F20-B710-8B6765F67105}|||Wine Gecko (32-bit) {E45D8920-A758-4088-B6C6-31DBB276992E}|||Wine Mono
$ wine uninstaller --remove {E45D8920-A758-4088-B6C6-31DBB276992E}
# to be really sure 'mscoree.dll' won't get updated -> keeps Wine's placeholder $ winetricks win7
# run .NET 4.0 installer without 'winetricks' $ wine ./dotNetFx40_Full_x86_x64.exe ...
# really check if placeholder is still there $ winedump .wine/drive_c/windows/system32/mscoree.dll Contents of .wine/drive_c/windows/system32/mscoree.dll: 5236 bytes
*** This is a Wine fake DLL ***
File Header Machine: 014C (i386) Number of Sections: 3 TimeDateStamp: 00000000 (Thu Jan 1 01:00:00 1970) offset 104 PointerToSymbolTable: 00000000 NumberOfSymbols: 00000000 SizeOfOptionalHeader: 00E0 Characteristics: 2022 EXECUTABLE_IMAGE LARGE_ADDRESS_AWARE DLL ... --- snip ---
Test by trigger .NET GAC update:
--- snip --- $ wine "c:\windows\Microsoft.NET\Framework\v4.0.30319\ngen.exe" update 0012:fixme:heap:RtlSetHeapInformation (nil) 1 (nil) 0 stub 0012:fixme:heap:RtlSetHeapInformation (nil) 1 (nil) 0 stub 0016:fixme:service:svcctl_ChangeServiceConfig2W SERVICE_CONFIG_FAILURE_ACTIONS not implemented: period 86400 msg (null) cmd (null) 0019:fixme:process:SetProcessShutdownParameters (00000380, 00000000): partial stub. 0019:err:winediag:CorIsLatestSvc If this function is called, it is likely the result of a broken .NET installation 0019:fixme:advapi:RegisterEventSourceW ((null),L".NET Runtime Optimization Service"): stub 0019:fixme:advapi:ReportEventW (0xcafe4242,0x0001,0x0000,0x0000044f,(nil),0x0001,0x00000000,0x76f9d0,(nil)): stub 0019:err:eventlog:ReportEventW L".NET Runtime Optimization Service (clr_optimization_v4.0.30319_32) - Tried to start a service that wasn't the latest version of CLR Optimization service. Will shutdown\n" 0019:fixme:advapi:DeregisterEventSource (0xcafe4242) stub 0009:fixme:heap:RtlSetHeapInformation (nil) 1 (nil) 0 stub 0009:fixme:heap:RtlSetHeapInformation (nil) 1 (nil) 0 stub wine: Call from 0x7b447132 to unimplemented function mscoree.dll.CorGetSvc, aborting Unknown exception --- snip ---
-> "0019:err:winediag:CorIsLatestSvc If this function is called, it is likely the result of a broken .NET installation"
We should still fix the NGEN client side and add 'mscoree.dll.CorGetSvc' stub as I explained in earlier comment(s).
I will create another ticket to cover the client side.
Regards