http://bugs.winehq.org/show_bug.cgi?id=25981
Summary: Duty Calls: fails to find msvcm90.dll (installed by vcrun2008) Product: Wine Version: 1.3.12 Platform: x86 URL: http://download.thedutycalls.com/DutyCallsUS.zip OS/Version: Linux Status: NEW Keywords: download, Installer Severity: minor Priority: P2 Component: -unknown AssignedTo: wine-bugs@winehq.org ReportedBy: austinenglish@gmail.com
First, do 'winetricks -q vcrun2008', then workaround bug 25979 (retry install until it works).
Run the game: austin@aw21 ~/.wine/drive_c/Program Files/Duty Calls/binaries/Win32 $ wine DutyCalls.exe fixme:actctx:parse_depend_manifests Could not find dependent assembly L"Microsoft.VC80.CRT" (8.0.50727.762) fixme:actctx:parse_depend_manifests Could not find dependent assembly L"Microsoft.VC80.CRT" (8.0.50727.762) err:module:import_dll Library msvcm90.dll (which is needed by L"C:\Program Files\Duty Calls\binaries\Win32\DutyCalls.exe") not found err:module:LdrInitializeThunk Main exe initialization for L"C:\Program Files\Duty Calls\binaries\Win32\DutyCalls.exe" failed, status c0000135
which fails to find the dll, even though it is installed: austin@aw21 ~/.wine/drive_c/Program Files/Duty Calls/binaries/Win32 $ find ~/.wine -name msvcm90.dll /home/austin/.wine/drive_c/windows/winsxs/x86_Microsoft.VC90.CRT_1fc8b3b9a1e18e3b_9.0.30729.1_x-ww_6f74963e/msvcm90.dll /home/austin/.wine/drive_c/windows/winsxs/x86_Microsoft.VC90.CRT_1fc8b3b9a1e18e3b_9.0.30729.4148_x-ww_d495ac4e/msvcm90.dll
workaround: copy the dll to the exe dir.
http://bugs.winehq.org/show_bug.cgi?id=25981
Austin English austinenglish@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Keywords|Installer |
http://bugs.winehq.org/show_bug.cgi?id=25981
Anastasius Focht focht@gmx.net changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |focht@gmx.net Component|-unknown |ntdll Summary|Duty Calls: fails to find |Duty Calls: loader fails to |msvcm90.dll (installed by |resolve msvcm90.dll due to |vcrun2008) |partial manifest data in | |WinSxS (empty assembly list | |for process default | |activation context) Severity|minor |normal
--- Comment #1 from Anastasius Focht focht@gmx.net 2011-07-17 08:20:03 CDT --- Hello,
there is no need for 'winetricks vcrun2008' prerequisite, the installer will install VC++ 2008 redist on its own. An indication of the problem is actually this message:
--- snip --- austin@aw21 ~/.wine/drive_c/Program Files/Duty Calls/binaries/Win32 $ wine DutyCalls.exe fixme:actctx:parse_depend_manifests Could not find dependent assembly L"Microsoft.VC80.CRT" (8.0.50727.762) fixme:actctx:parse_depend_manifests Could not find dependent assembly L"Microsoft.VC80.CRT" (8.0.50727.762) --- snip ---
Even if Wine ships/implements lots of VC++ 200X runtime dlls now, they are still not "WinSxS" registered (e.g. have no manifest data there).
Dump of application manifest (PE resource):
--- snip --- <!-- Copyright 1981-2001 Microsoft Corporation --> <assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<!-- Tell Vista we don't need administrator level access--> <ms_asmv2:trustInfo xmlns:ms_asmv2="urn:schemas-microsoft-com:asm.v2"> <ms_asmv2:security> <ms_asmv2:requestedPrivileges> <ms_asmv2:requestedExecutionLevel level="asInvoker" uiAccess="false" /> </ms_asmv2:requestedPrivileges> </ms_asmv2:security> </ms_asmv2:trustInfo>
<dependency> <dependentAssembly> <assemblyIdentity type='win32' name='Microsoft.VC90.CRT' version='9.0.30729.1' processorArchitecture='x86' publicKeyToken='1fc8b3b9a1e18e3b' /> </dependentAssembly> </dependency> <dependency> <dependentAssembly> <assemblyIdentity type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='x86' publicKeyToken='6595b64144ccf1df' /> </dependentAssembly> </dependency> <dependency> <dependentAssembly> <assemblyIdentity type='win32' name='Microsoft.VC80.CRT' version='8.0.50727.762' processorArchitecture='x86' publicKeyToken='1fc8b3b9a1e18e3b' /> </dependentAssembly> </dependency> </assembly> --- snip ---
Both VC++ 2005 and 2008 runtimes are referenced.
If the executable has a resource of type RT_MANIFEST with ID CREATEPROCESS_MANIFEST_RESOURCE_ID the loader will create a process default activation context. The process default activation context will be used by all dependent dlls loaded in the process. For dlls that have private dependencies (other than process defaults), ID ISOLATIONAWARE_MANIFEST_RESOURCE_ID is used. The loader creates a new activation context and uses it to probe the dll's dependencies. It actually does it successfully in this case because all "custom" dlls with assembly manifests only reference the VC++ 2008 runtime -> properly registered within WinSxS.
In your case the primary (default) process activation context must be valid (e.g. contain assembly references) to have dependencies like "msvcm90.dll" resolved for the main execuable.
Because of missing VC++ 2005 runtime manifests, the _whole_ assembly list for default process activation context is empty - even if the VC++ 2008 manifest was parsed successfully earlier.
You need: 'winetricks vcrun2005' to get the manifests.
Either Wine needs to tolerate missing/partial manifest data and still have the default process activation context contain the rest of parsed dependencies or it must start placing "fake" manifests on its own.
Regards
http://bugs.winehq.org/show_bug.cgi?id=25981
Anastasius Focht focht@gmx.net changed:
What |Removed |Added ---------------------------------------------------------------------------- Fixed by SHA1| |05ddaaf0686a0fcc10c9874a8d3 | |abc9f35459f44 Status|NEW |RESOLVED Component|ntdll |msvcrt Resolution| |FIXED
--- Comment #2 from Anastasius Focht focht@gmx.net 2011-12-21 14:58:38 CST --- Hello,
this was fixed with http://source.winehq.org/git/wine.git/commitdiff/05ddaaf0686a0fcc10c9874a8d3... when Wine introduced it's own manifests into WinSxS.
The game needs 'winetricks -q dotnet20' due to "msvcm90.dll" dependency of some plugins (requires .NET CLR). Incidentally this also installs VC++ 2005 runtime + manifests alongside with Wine's manifests (due to bug 23324).
Regards
http://bugs.winehq.org/show_bug.cgi?id=25981
Alexandre Julliard julliard@winehq.org changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|RESOLVED |CLOSED
--- Comment #3 from Alexandre Julliard julliard@winehq.org 2011-12-30 12:57:04 CST --- Closing bugs fixed in 1.3.36.