[Bug 30529] New: LiteStep 0.3 refuses to install due to mismatched VC++ runtime versions (8.0.50727.42 (2005), 8.0.50727.762 (2005 SP1), 9.0.21022.8 (2008))

wine-bugs at winehq.org wine-bugs at winehq.org
Fri Apr 27 17:37:12 CDT 2012


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

             Bug #: 30529
           Summary: LiteStep 0.3 refuses to install due to mismatched VC++
                    runtime versions (8.0.50727.42 (2005), 8.0.50727.762
                    (2005 SP1), 9.0.21022.8 (2008))
           Product: Wine
           Version: 1.5.2
          Platform: x86
        OS/Version: Linux
            Status: NEW
          Severity: normal
          Priority: P2
         Component: msvcrt
        AssignedTo: wine-bugs at winehq.org
        ReportedBy: focht at gmx.net
    Classification: Unclassified


Hello,

continuation of bug 17631
With IAssemblyCache::QueryAssemblyInfo implemented it still fails for this
specific installer due to exact version mismatch (installer queries with fully
qualified name).

VC++ 8.0 (2005): v8.0.50727.42

--- snip ---
...
0024:Call KERNEL32.LoadLibraryExA(00409780
"C:\\users\\focht\\Temp\\nsq76e4.tmp\\System.dll",00000000,00000008)
ret=00401f92
...
0024:Call KERNEL32.GetProcAddress(10000000,00409380 "Call") ret=00401fa2
0024:Ret  KERNEL32.GetProcAddress() retval=00910011 ret=00401fa2
0024:CALL System.Call(00020080,00000400,007a3000,0040af80,00409000)
ret=00401fe0 
...
0024:trace:sxs:cache_QueryAssemblyInfo 0x174938, 0x00000000,
L"Microsoft.VC80.CRT,version=\"8.0.50727.42\",type=\"win32\",processorArchitecture=\"x86\",publicKeyToken=\"1fc8b3b9a1e18e3b\"",
0x1677d8
0024:trace:sxs:CreateAssemblyNameObject 0x32e360,
L"Microsoft.VC80.CRT,version=\"8.0.50727.42\",type=\"win32\",processorArchitecture=\"x86\",publicKeyToken=\"1fc8b3b9a1e18e3b\"",
0x00000001, (nil)
...
0024:Call KERNEL32.GetFileAttributesW(001788d0
L"C:\\windows\\winsxs\\manifests\\x86_microsoft.vc80.crt_1fc8b3b9a1e18e3b_8.0.50727.42_none_deadbeef.manifest")
ret=7df0151a
0024:Ret  KERNEL32.GetFileAttributesW() retval=ffffffff ret=7df0151a 
...
0024:RET  System.Call() retval=00000000 ret=00401fe0
0024:Call KERNEL32.FreeLibrary(10000000) ret=00401fff 
--- snip ---

VC++ 8.0 (2005) hotfix: v8.0.50727.163

--- snip ---
...
0024:trace:sxs:cache_QueryAssemblyInfo 0x174938, 0x00000000,
L"Microsoft.VC80.CRT,version=\"8.0.50727.163\",type=\"win32\",processorArchitecture=\"x86\",publicKeyToken=\"1fc8b3b9a1e18e3b\"",
0x1677d8
0024:trace:sxs:CreateAssemblyNameObject 0x32e360,
L"Microsoft.VC80.CRT,version=\"8.0.50727.163\",type=\"win32\",processorArchitecture=\"x86\",publicKeyToken=\"1fc8b3b9a1e18e3b\"",
0x00000001, (nil) 
...
0024:Call KERNEL32.GetFileAttributesW(001788d0
L"C:\\windows\\winsxs\\manifests\\x86_microsoft.vc80.crt_1fc8b3b9a1e18e3b_8.0.50727.163_none_deadbeef.manifest")
ret=7df0151a
0024:Ret  KERNEL32.GetFileAttributesW() retval=ffffffff ret=7df0151a 
...
--- snip ---

VC++ 8.0 (2005) SP1: v8.0.50727.762

--- snip ---
...
0024:trace:sxs:cache_QueryAssemblyInfo 0x174938, 0x00000000,
L"Microsoft.VC80.CRT,version=\"8.0.50727.762\",type=\"win32\",processorArchitecture=\"x86\",publicKeyToken=\"1fc8b3b9a1e18e3b\"",
0x1677d8
0024:trace:sxs:CreateAssemblyNameObject 0x32e360,
L"Microsoft.VC80.CRT,version=\"8.0.50727.762\",type=\"win32\",processorArchitecture=\"x86\",publicKeyToken=\"1fc8b3b9a1e18e3b\"",
0x00000001, (nil) 
...
0024:Call KERNEL32.GetFileAttributesW(001788d0
L"C:\\windows\\winsxs\\manifests\\x86_microsoft.vc80.crt_1fc8b3b9a1e18e3b_8.0.50727.762_none_deadbeef.manifest")
ret=7df0151a
0024:Ret  KERNEL32.GetFileAttributesW() retval=ffffffff ret=7df0151a 
...
--- snip ---

VC++ 8.0 (2005) SP1: v8.0.50727.1433

--- snip ---
...
0024:trace:sxs:cache_QueryAssemblyInfo 0x174938, 0x00000000,
L"Microsoft.VC80.CRT,version=\"8.0.50727.1433\",type=\"win32\",processorArchitecture=\"x86\",publicKeyToken=\"1fc8b3b9a1e18e3b\"",
0x1677d8
0024:trace:sxs:CreateAssemblyNameObject 0x32e360,
L"Microsoft.VC80.CRT,version=\"8.0.50727.1433\",type=\"win32\",processorArchitecture=\"x86\",publicKeyToken=\"1fc8b3b9a1e18e3b\"",
0x00000001, (nil) 
...
0024:Call KERNEL32.GetFileAttributesW(001788d0
L"C:\\windows\\winsxs\\manifests\\x86_microsoft.vc80.crt_1fc8b3b9a1e18e3b_8.0.50727.1433_none_deadbeef.manifest")
ret=7df0151a
0024:Ret  KERNEL32.GetFileAttributesW() retval=ffffffff ret=7df0151a 
...
--- snip ---

VC++ 9.0 (2008): v9.0.21022.8

--- snip ---
0024:trace:sxs:cache_QueryAssemblyInfo 0x174938, 0x00000000,
L"Microsoft.VC90.CRT,version=\"9.0.21022.8\",type=\"win32\",processorArchitecture=\"x86\",publicKeyToken=\"1fc8b3b9a1e18e3b\"",
0x1677d8
0024:trace:sxs:CreateAssemblyNameObject 0x32e360,
L"Microsoft.VC90.CRT,version=\"9.0.21022.8\",type=\"win32\",processorArchitecture=\"x86\",publicKeyToken=\"1fc8b3b9a1e18e3b\"",
0x00000001, (nil) 
...
0024:Call KERNEL32.GetFileAttributesW(001788d0
L"C:\\windows\\winsxs\\manifests\\x86_microsoft.vc90.crt_1fc8b3b9a1e18e3b_9.0.21022.8_none_deadbeef.manifest")
ret=7df0151a
0024:Ret  KERNEL32.GetFileAttributesW() retval=ffffffff ret=7df0151a 
...
--- snip ---

If you create fake manifests matching the requested version numbers the
installer will properly detect all VC++ runtimes.

VC++ 8.0 (2005): 8.0.50727.42
VC++ 8.0 (2005) SP1: 8.0.50727.762
VC++ 9.0 (2008): 9.0.21022.8

Maybe QueryAssemblyInfo() is allowed to make use of the assembly binding
redirect feature, returning assembly info for qualified name that matches a
version range.
That way only one manifest for each VC++ runtime needs to be provided.
Though I could be wrong ... then Wine has to provide more fake manifests,
covering various versions of the same VC++ runtime.

$ du -sh LOSI-0.3.exe 
4.8M    LOSI-0.3.exe

$ sha1sum LOSI-0.3.exe 
cee31fa9ebf1838b89e7452e6269b4d20f1c51b8  LOSI-0.3.exe

$ wine --version
wine-1.5.3

Regards

-- 
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