[Bug 10547] New: .NET 3.5 Framework installation problems (msi, bits, crypt32)

wine-bugs at winehq.org wine-bugs at winehq.org
Fri Nov 23 07:19:33 CST 2007


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

           Summary: .NET 3.5 Framework installation problems (msi, bits,
                    crypt32)
           Product: Wine
           Version: CVS/GIT
          Platform: PC
               URL: http://download.microsoft.com/download/6/0/f/60fc5854-
                    3cb8-4892-b6db-bd4f42510f28/dotnetfx35.exe
        OS/Version: Linux
            Status: UNCONFIRMED
          Severity: normal
          Priority: P2
         Component: wine-dotnet
        AssignedTo: wine-bugs at winehq.org
        ReportedBy: focht at gmx.net


Created an attachment (id=9300)
 --> (http://bugs.winehq.org/attachment.cgi?id=9300)
patch which adds msi.MsiSetExternalUIRecord and
msi.MsiDetermineApplicablePatchesW

Hello,

this (showcase) bug id exists to show/track .NET Framework 3.5 install issues,
e.g. what wine needs to implement/work around.
With VS.NET 2008 and .NET Framework 3.5 released, the Framework 3.5 needs to be
installed first.

Used GIT:

wine --version
wine-0.9.49-331-g7a8eb4c

Prerequisites:

1) set OS config to at least "Windows XP"

2) one volume name (dosdevices/<driveletter>:) must contain "harddisk" or
"ramdisk" and write accessible

  cd ~/.wine
  mv drive_c harddiskvolume1
  cd dosdevices
  ln -sf ../harddiskvolume1 c:

The installer then stops at unimplemented msi.MsiSetExternalUIRecord, attached
patch adds simple stub which fixes this.

----
If you downloaded the "small" .NET Framework installer, you now run into a
major showstopper: BITS required

The partial installer depends on: http://bugs.winehq.org/show_bug.cgi?id=5713

What is the consensus regarding native BITS and builtin BITS?
Builtin bits might take some time until it gets into usable state.
Native BITS is described here: http://bugs.winehq.org/show_bug.cgi?id=6194
though I haven't looked at it for some time.
Will native BITS considered abandoned then (needs some nasty workarounds)?

----

If you downloaded the full installer some messages seem to indicate BITS is
used in full installer too, but it doesn't seem to harm now.

--- snip ---
0012:err:ole:create_server class {4991d34b-80a1-4291-83b6-3328366b9097} not
registered
0012:fixme:ole:CoGetClassObject CLSCTX_REMOTE_SERVER not supported
0012:err:ole:CoGetClassObject no class object
{4991d34b-80a1-4291-83b6-3328366b9097} could be created for context 0x17
0012:Ret  ole32.CoCreateInstance() retval=80004002 ret=3aea41ed
..
0012:Call advapi32.RegCreateKeyExW(80000001,00563758
L"SOFTWARE\\Microsoft\\VisualStudio\\9.0\\DownloadManager",00000000,00000000,00000000,0002001f,00000000,0034e284,00000000)
ret=3aea8785
0012:Ret  advapi32.RegCreateKeyExW() retval=00000000 ret=3aea8785
0012:Call advapi32.RegQueryValueExW(00000290,00563d30
L"BitsOverride",00000000,0034e1c8,0034e1f4,0034e1cc) ret=3aea899a
0012:Ret  advapi32.RegQueryValueExW() retval=00000002 ret=3aea899a 
--- snip ---

Interestingly there is some undocumented "BitsOverride" which might indicate a
possibility to revert their interal download manager to standard download
procedures.

The showstopper for full installer seem to be various hotfix installers which
are spawned by main installer.

As example I start with hotfix "Windows Imaging Component update" which gets
extracted by installer into
"c:\<guid>\wcu\dotNetFramework\dotNetFX30\WIC_x86_enu.exe" and tries to run it.
This fails and lets overall installer fail too.

It seems to make various specific checks for operating system version/build.
I only quote checks which seem to fail:

--- snip ---
0040:Call KERNEL32.CreateFileA(01104940
"c:\\windows\\system32\\ntoskrnl.exe",80000000,00000001,00000000,00000003,00000000,00000000)
ret=01070767
0040:Ret  KERNEL32.CreateFileA() retval=ffffffff ret=01070767
0040:Call KERNEL32.CloseHandle(ffffffff) ret=010708a6
0040:Ret  KERNEL32.CloseHandle() retval=00000000 ret=010708a6 
--- snip ---

"GetKernelType: GetInternalFilename failed"

--- snip ---
0040:Call KERNEL32.LoadLibraryA(01023c38 "setupapi.dll") ret=0106f709
0040:Ret  KERNEL32.LoadLibraryA() retval=615d0000 ret=0106f709
0040:Call KERNEL32.GetProcAddress(615d0000,01023c24 "pSetupIsUserAdmin")
ret=0106f71b
0040:Ret  KERNEL32.GetProcAddress() retval=00000000 ret=0106f71b
0040:Call KERNEL32.FreeLibrary(615d0000) ret=0106f72a
0040:Ret  KERNEL32.FreeLibrary() retval=00000001 ret=0106f72a 
--- snip ---

--- snip ---
0040:Call advapi32.RegOpenKeyExA(80000002,0101e608
"SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Setup\\WindowsFeatures",00000000,00020019,0033b774)
ret=0109191a
0040:Ret  advapi32.RegOpenKeyExA() retval=00000002 ret=0109191a
0040:Call KERNEL32.GetLastError() ret=010701ae
0040:Ret  KERNEL32.GetLastError() retval=00000078 ret=010701ae 
--- snip ---

"GetBuildType, line 1170, RegOpenKeyEx failed with error 0x2"

--- snip ---
0030:Call KERNEL32.LoadLibraryExA(0033b9c4
"c:\\windows\\system32\\pidgen.dll",00000000,00000002) ret=0105d03f
0030:Ret  KERNEL32.LoadLibraryExA() retval=00000000 ret=0105d03f
0030:Call KERNEL32.GetLastError() ret=010701ae
0030:Ret  KERNEL32.GetLastError() retval=0000007e ret=010701ae 
--- snip ---

This is from the log of installer itself to get the idea:

--- snip ---
0.101: Hotfix started with following command line: 
0.101: GetKernelType: GetInternalFilename failed
0.102: In Function GetBuildType, line 1170, RegOpenKeyEx failed with error 0x2
0.102: GetGroupIdFromPidGenDll:LoadLibrary failed for
c:\windows\system32\pidgen.dll dll 
0.102: CheckSystem_1203: Failed to get product build type.
0.102: DoInstallation: CheckSystem Failed: 0xf117 
0.103: WIC installation did not complete.
1.469: Message displayed to the user: WIC installation did not complete.
1.469: User Input: OK
1.469: Update.exe extended error code = 0xf117
1.469: Update.exe return code was masked to 0x643 for MSI custom action
compliance.
--- snip ---

I copied "pigen.dll" from my windows xp installation and it seems to help a
bit, showing that previous checks might be optional?

--- snip ---
0040:Call KERNEL32.LoadLibraryExA(0033b9c4
"c:\\windows\\system32\\pidgen.dll",00000000,00000002) ret=0105d03f
0040:Ret  KERNEL32.LoadLibraryExA() retval=003b0001 ret=0105d03f
0040:Call KERNEL32.FindResourceA(003b0001,00000001,0101e2ac "BINK")
ret=0105d059
0040:Ret  KERNEL32.FindResourceA() retval=003b54a0 ret=0105d059
0040:Call KERNEL32.LoadResource(003b0001,003b54a0) ret=0105d070
0040:Ret  KERNEL32.LoadResource() retval=003b54e0 ret=0105d070
0040:Call KERNEL32.LockResource(003b54e0) ret=0105d07d
0040:Ret  KERNEL32.LockResource() retval=003b54e0 ret=0105d07d
0040:Call KERNEL32.FreeResource(003b54e0) ret=0105d0aa
0040:Ret  KERNEL32.FreeResource() retval=00000000 ret=0105d0aa
0040:Call KERNEL32.FreeLibrary(003b0001) ret=0105d0b1
0040:Ret  KERNEL32.FreeLibrary() retval=00000001 ret=0105d0b1 
--- snip ---

Seems "only" the "BINK" resource is read (2 sub chunks)


More information about the wine-bugs mailing list