http://bugs.winehq.org/show_bug.cgi?id=28225
Summary: Wine refuses to load native MSVCP90.dll, and won't even say why. Product: Wine Version: 1.3.27 Platform: x86 OS/Version: Linux Status: UNCONFIRMED Severity: normal Priority: P2 Component: -unknown AssignedTo: wine-bugs@winehq.org ReportedBy: skotlex@mailforce.net
Back in version 1.3.26 wine was working correctly in the application I was using it for (Ragnarok Online, used to have platinum rating in the appDB), but since 1.3.27 wine cannot launch the application anymore.
By default, it tries to use the built-in MSVCP90.dll, which is a no go because it has missing functions (already reported in bug #28215). However, the problem is when I try to force the native version to be used, wine will not load it, and it won't even give any explanation on why.
WINEDLLOVERRIDES="msvcp90=n" WINEDEBUG=+loaddll wine ragnarok.exe
Will print (relevant part):
trace:loaddll:load_builtin_dll Loaded L"c:\windows\system32\iphlpapi.dll" at 0x7e3e0000: builtin trace:loaddll:load_builtin_dll Loaded L"c:\windows\system32\netapi32.dll" at 0x7e410000: builtin err:module:import_dll Library MSVCP90.dll (which is needed by L"C:\ro\ragnarok.exe") not found trace:loaddll:load_builtin_dll Loaded L"c:\windows\system32\msvcrt.dll" at 0x7e340000: builtin trace:loaddll:load_builtin_dll Loaded L"c:\windows\system32\msvcr90.dll" at 0x7e3c0000: builtin
The file, msvcp90.dll, is in the same directory as the executable, and there is a Manifest for it as well (Microsoft.VC90.CRT.manifest):
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <!-- Copyright (c) Microsoft Corporation. All rights reserved. --> <assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0"> <noInheritable/> <assemblyIdentity type="win32" name="Microsoft.VC90.CRT" version="9.0.21022.8" processorArchitecture="x86" publicKeyToken="1fc8b3b9a1e18e3b" /> <file name="msvcr90.dll" /> <file name="msvcp90.dll" /> <file name="msvcm90.dll" /> </assembly>
According to winefile, the msvcp90.dll file I have has the following properties:
Version: 9.0.21022.8 Size: 568832 Bytes FileVersion: 9.00.21022.8 InternalName: MSVCP90.DLL ProductVersion: 9.00.21022.8
One thing that jumps to the eye is the fact that the different version fields don't agree on whether it is 9.0.X, or 9.00.X, but that may be normal. What I don't find normal is the fact that wine doesn't give me any hint on what is wrong and why it cannot load that dll :/
I am guessing it is related to manifests, since the support for that went in in this Wine version. So, in summary, shouldn't wine print out an error message detailing why it failed to load a particular dll file?