[Bug 24875] SongSmith 1.0.2 doesn't install (managed assembly installation fails, needs Win32_OperatingSystem WMI class)

wine-bugs at winehq.org wine-bugs at winehq.org
Sun Feb 19 17:04:49 CST 2012


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

Anastasius Focht <focht at gmx.net> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Keywords|                            |dotnet
                 CC|                            |focht at gmx.net
          Component|-unknown                    |wmi&wbemprox
         Depends on|                            |20651
            Summary|SongSmith doesn't install   |SongSmith 1.0.2 doesn't
                   |                            |install (managed assembly
                   |                            |installation fails, needs
                   |                            |Win32_OperatingSystem WMI
                   |                            |class)

--- Comment #17 from Anastasius Focht <focht at gmx.net> 2012-02-19 17:04:49 CST ---
Hello,

peeking with "orca" into "_VsdLaunchCondition" table reveals:

--- snip ---
VSDFXAvailable    [VSDNETURLMSG]   
http://www.microsoft.com/downloads/details.aspx?familyid=10cc340b-f857-4a14-83f5-25634c3bf043&displaylang=en
--- snip ---

This is the download location for .NET Framework 3.0 SP1.

Console log:

--- snip ---
...
Running Install phase of non-transacted install
fixme:shell:URL_ParseUrl failed to parse
L"System.Runtime.Serialization.Formatters.Soap"
Installing assembly 'C:\Program Files\Songsmith\SSCustomInstaller.dll'.
Affected parameters are:
   action = install
   installtype = notransaction
   appdir = C:\Program Files\Songsmith\
   logfile = 
   assemblypath = C:\Program Files\Songsmith\SSCustomInstaller.dll
...
err:msi:ITERATE_Actions Execution halted, action L"InstallExecute" returned
1603
err:msi:ITERATE_Actions Execution halted, action L"ExecuteAction" returned 1603
Running Rollback phase of non-transacted install.
Rolling back assembly 'C:\Program Files\Songsmith\SSCustomInstaller.dll'.
--- snip ---

The problem seems to the installation of managed assembly during managed custom
action.

--- snip ---
...
002b:trace:msi:HANDLE_CustomType1 Calling function L"ManagedInstall" from
L"C:\\users\\focht\\Temp\\msi8f2e.tmp" 
...
0032:trace:msi:ACTION_CallDllFunction calling L"ManagedInstall" 
...
0032:Call msi.MsiGetPropertyW(00000002,606b1490
L"CustomActionData",606b14b4,007ee858) ret=606b2a45 
...
0032:Ret  msi.MsiGetPropertyW() retval=00000000 ret=606b2a86
0032:Call oleaut32.SysAllocString(004c7cb8 L"/installtype=notransaction
/action=install /LogFile= /AppDir=\"C:\\Program Files\\Songsmith\\\\\"
\"C:\\Program Files\\Songsmith\\SSCustomInstaller.dll\" ") ret=606b296c 
...
0032:Call KERNEL32.WideCharToMultiByte(0000fde9,00000000,606b1320
L"System.Configuration.Install.ManagedInstallerClass,System.Configuration.Install,version=2.0.0.0,
Culture=neutral,
PublicKeyToken=b03f5f7f11d50a3a",ffffffff,007ee574,00000123,00000000,00000000)
ret=79e97638 
...
0032:trace:msi:MSI_ProcessMessage (nil) (nil) (nil) 0 2 L"1: 1001 2: Error
code: 0x80041001 "
...
0032:trace:msi:DllThread custom action (32) returned -1 
--- snip ---

Not much to see due to the nature of managed custom action.
Tracing managed exceptions reveals more:

--- snip ---
...
006edcdc 0c5028b1
System.Management.ManagementException.ThrowWithExtendedInfo(System.Management.ManagementStatus)
006edd1c 0c501dab
System.Management.ManagementScope.InitializeGuts(System.Object)
006edd6c 0c501ad7 System.Management.ManagementScope.Initialize()
006edd98 0c5019c9 System.Management.ManagementObjectSearcher.Initialize()
006eddcc 0c501643 System.Management.ManagementObjectSearcher.Get()
006ede0c 0c500382 SSCustomInstaller.SSInstaller.GetCpuArch()
006ede44 0c5001ba SSCustomInstaller.SSInstaller..ctor()
006ee078 79e71b4c [GCFrame: 006ee078] 
006ee140 79e71b4c [GCFrame: 006ee140] 
006ee15c 79e71b4c [HelperMethodFrame_2OBJ: 006ee15c]
System.RuntimeTypeHandle.CreateInstance(System.RuntimeType, Boolean, Boolean,
Boolean ByRef, System.RuntimeMethodHandle ByRef, Boolean ByRef)
006ee2d8 792efff7 System.RuntimeType.CreateInstanceSlow(Boolean, Boolean)
006ee308 792eff67 System.RuntimeType.CreateInstanceImpl(Boolean, Boolean,
Boolean)
006ee340 792f0164 System.Activator.CreateInstance(System.Type, Boolean)
006ee350 79288b13
System.RuntimeType.CreateInstanceImpl(System.Reflection.BindingFlags,
System.Reflection.Binder, System.Object[], System.Globalization.CultureInfo,
System.Object[])
006ee3b0 79280de0 System.Activator.CreateInstance(System.Type,
System.Reflection.BindingFlags, System.Reflection.Binder, System.Object[],
System.Globalization.CultureInfo, System.Object[])
006ee3d4 649fc2ea
System.Configuration.Install.AssemblyInstaller.InitializeFromAssembly()
006ee40c 649fbd1b
System.Configuration.Install.AssemblyInstaller.Install(System.Collections.IDictionary)
006ee444 649fd453
System.Configuration.Install.ManagedInstallerClass.InstallHelper(System.String[])
006ee490 649fd77a
System.Configuration.Install.ManagedInstallerClass.System.Configuration.Install.IManagedInstaller.ManagedInstall(System.String,
Int32)
--- snip ---

Using that info we can peek into "SSCustomInstaller.dll" assembly:

--- snip ---
...
     using (ManagementObjectSearcher searcher = new
ManagementObjectSearcher("SELECT * FROM Win32_OperatingSystem"))
        {
            new ManagementScope(@"root\CIMV2");
            ManagementObjectCollection objects = searcher.Get();
            try
            {
                foreach (ManagementObject obj2 in objects)
                {
                    this._OSCaption = (string) obj2["Caption"];
                    string str = (string) obj2["OSArchitecture"];
                    if (str.Contains("32"))
                    {
                        unknown = eOperatingSystem.x86;
                    }
                    else if (str.Contains("64"))
                    {
                        unknown = eOperatingSystem.x64;
                    }
                }
            }
            catch
            {
            }
        }
...
--- snip ---

There we go ... another WMI bug/insufficiency here.

First it depends on infrastructure covered by bug 20651 ("WBEM / WMI not
implemented, affects many .NET apps").

Making this bug about "Win32_OperatingSystem" WMI class implementation in the
"root\cimv2" namespace.

$ sha1sum SongsmithSetup.1.02.msi 
wfa6d5d889f37d369d61ec5c49dfb7f8d9932eb09  SongsmithSetup.1.02.msi

$ wine --version
wine-1.4-rc4

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