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@winehq.org ReportedBy: dank@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.