[Bug 11742] New: Small .net 1.1 app (FastMD5 1.3) fails to start up

wine-bugs at winehq.org wine-bugs at winehq.org
Tue Feb 26 13:05:05 CST 2008


http://bugs.winehq.org/show_bug.cgi?id=11742

           Summary: Small .net 1.1 app (FastMD5 1.3) fails to start up
           Product: Wine
           Version: CVS/GIT
          Platform: Other
               URL: http://www.paehl.de/fastmd5.zip
        OS/Version: other
            Status: NEW
          Keywords: download
          Severity: normal
          Priority: P2
         Component: shlwapi
        AssignedTo: wine-bugs at winehq.org
        ReportedBy: dank at kegel.com


Now that bug 10134 is fixed, and .net 1.1's installer runs to completion,
you can install the .net 1.1 version of fastmd5.  But you can't start it;
it complains
fixme:shell:URL_ParseUrl failed to parse L"mscorlib"
fixme:shell:URL_ParseUrl failed to parse L"System"
...

This was investigated and tracked down to an extra '\' by A.F. in
http://bugs.winehq.org/show_bug.cgi?id=10134#c20

Copying his comments here, since that bug was about dotnetfx install failure:

Registering assemblies into GAC and pre JIT-ing (ngen tool) doesn't work right
now due to a bug in shlwapi's UrlCombineW().

Because of this bug, .NET 1.x fusion loader won't find any referenced
assemblies on app startup, leading to rather cryptic "resource not found" error
message.

--- snip trace ---
..
001f:Call shlwapi.UrlCombineW(005436d8
L"C:\\windows\\Microsoft.NET\\Framework\\v1.1.4322/",0053b590
L"C:\\windows\\Microsoft.NET\\Framework\\v1.1.4322\\System.dll",00544728
L"hS\0108S",0033e320,00000000) ret=7904e23d
..
001f:Ret  shlwapi.UrlCombineW() retval=00000000 ret=7904e23d
001f:Call shlwapi.UrlIsW(00544728
L"file:///C:/windows/Microsoft.NET/Framework/v1.1.4322/System.dll/",00000003)
ret=7904e250
001f:Ret  shlwapi.UrlIsW() retval=00000001 ret=7904e250
001f:Call shlwapi.UrlUnescapeW(00544728
L"file:///C:/windows/Microsoft.NET/Framework/v1.1.4322/System.dll/",00542688,0033e35c,00000000)
ret=7904e267
001f:Ret  shlwapi.UrlUnescapeW() retval=00000000 ret=7904e267
..
--- snip trace ---

The returned combined URL/path is invalid.
Fusion internally re-verifies paths before mapping dlls and rejects it.

reduced: "c:\\test/" + "c:\\test\\mylib.dll" 

wine -> "file:///c:\\test\\mylib.dll/" (wrong)
windows -> "file:///c:\\test\\mylib.dll" (correct, I wrote a small test case
and tested with Windows XP SP2).

So get that bug fixed and apps/fusion will find the requested assemblies.

--

For trace/logging purposes you can enable fusion's verbose logging:

--- snip ---
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Fusion]
"ForceLog"=dword:00000001
"LogResourceBinds"=dword:00000001
"LogFailures"=dword:00000001
"LogPath"="C:\\Temp\\FusionLogs"
--- snip ---

That will get you detailed CLR assembly search and loader logs.
Handy for diagnosing assembly loading problems.


-- 
Configure bugmail: http://bugs.winehq.org/userprefs.cgi?tab=email
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