0
votes

So I have a Wix bootstrapper that installs VC++ 2005 (x86) Redistributable among other things and also installs a 3rd party MSI that keeps failing on a failed SelfReg of one of its dlls. When I install VC++ 2005 (x86) outside of the bootstrapper everything works fine and the bootstrapper chain skips the VC++ install and the installs the MSI requiring the SelfRegs without issue. However, when I have my bootstrapper install the VC++ Redistributable before the MSI it depends on it fails because the SelfRegs fail.

Now if I were to guess the issue may have something to do with environment variables not getting refreshed during the bootstrapper chain and thus a reboot could fix it. I would prefer an alternative solution and was wondering if someone else may have an idea of what's happening and give me an alternative.

Update: So when I hit the point of failure, I can confirm that VC++ 2005 (x86) is installed in both the log files, the registry key at HKLM/SOFTWARE/Microsoft/DevDiv/VC/8.0/RED/1033/Install, and manifest files in C:\Windows\WinSxS\Manifests. When I run sxstrace while trying to self-register the DLLs manually with Regsvr32.exe I get this log.

 =================
 Begin Activation Context Generation.
 Input Parameter:
    Flags = 0
    ProcessorArchitecture = Wow32
    CultureFallBacks = en-US;en
    ManifestPath = C:\Program Files (x86)\Business Objects\BusinessObjects Enterprise 12.0\win32_x86\PersonalCategory.dll
    AssemblyDirectory = C:\Program Files (x86)\Business Objects\BusinessObjects Enterprise 12.0\win32_x86\
    Application Config File = 
 -----------------
 INFO: Parsing Manifest File C:\Program Files (x86)\Business Objects\BusinessObjects Enterprise 12.0\win32_x86\PersonalCategory.dll.
    INFO: Manifest Definition Identity is (null).
    INFO: Reference: Microsoft.VC80.CRT,processorArchitecture="x86",publicKeyToken="1fc8b3b9a1e18e3b",type="win32",version="8.0.50727.4053"
    INFO: Reference: Microsoft.VC80.ATL,processorArchitecture="x86",publicKeyToken="1fc8b3b9a1e18e3b",type="win32",version="8.0.50727.4053"
 INFO: Resolving reference Microsoft.VC80.CRT,processorArchitecture="x86",publicKeyToken="1fc8b3b9a1e18e3b",type="win32",version="8.0.50727.4053".
    INFO: Resolving reference for ProcessorArchitecture WOW64.
        INFO: Resolving reference for culture Neutral.
            INFO: Applying Binding Policy.
                INFO: No publisher policy found.
                INFO: No binding policy redirect found.
            INFO: Begin assembly probing.
                INFO: Did not find the assembly in WinSxS.
                INFO: Attempt to probe manifest at C:\Windows\assembly\GAC_32\Microsoft.VC80.CRT\8.0.50727.4053__1fc8b3b9a1e18e3b\Microsoft.VC80.CRT.DLL.
                INFO: Did not find manifest for culture Neutral.
            INFO: End assembly probing.
    INFO: Resolving reference for ProcessorArchitecture x86.
        INFO: Resolving reference for culture Neutral.
            INFO: Applying Binding Policy.
                INFO: Find publisher policy at C:\Windows\WinSxS\manifests\x86_policy.8.0.microsoft.vc80.crt_1fc8b3b9a1e18e3b_8.0.50727.8428_none_516ac2a30f4be7a6.manifest
                INFO: Publisher Policy redirected assembly version.
                INFO: Post policy assembly identity is Microsoft.VC80.CRT,processorArchitecture="x86",publicKeyToken="1fc8b3b9a1e18e3b",type="win32",version="8.0.50727.8428".
            INFO: Begin assembly probing.
                INFO: Attempt to probe manifest at C:\Windows\WinSxS\manifests\x86_microsoft.vc80.crt_1fc8b3b9a1e18e3b_8.0.50727.8428_none_d08a11e2442dc25d.manifest.
                INFO: Manifest found at C:\Windows\WinSxS\manifests\x86_microsoft.vc80.crt_1fc8b3b9a1e18e3b_8.0.50727.8428_none_d08a11e2442dc25d.manifest.
            INFO: End assembly probing.
 INFO: Resolving reference Microsoft.VC80.CRT.mui,language="*",processorArchitecture="x86",publicKeyToken="1fc8b3b9a1e18e3b",type="win32",version="8.0.50727.8428".
    INFO: Resolving reference for ProcessorArchitecture WOW64.
        INFO: Resolving reference for culture en-US.
            INFO: Applying Binding Policy.
                INFO: No publisher policy found.
                INFO: No binding policy redirect found.
            INFO: Begin assembly probing.
                INFO: Did not find the assembly in WinSxS.
                INFO: Attempt to probe manifest at C:\Windows\assembly\GAC_32\Microsoft.VC80.CRT.mui\8.0.50727.8428_en-US_1fc8b3b9a1e18e3b\Microsoft.VC80.CRT.mui.DLL.
                INFO: Did not find manifest for culture en-US.
            INFO: End assembly probing.
        INFO: Resolving reference for culture en.
            INFO: Applying Binding Policy.
                INFO: No publisher policy found.
                INFO: No binding policy redirect found.
            INFO: Begin assembly probing.
                INFO: Did not find the assembly in WinSxS.
                INFO: Attempt to probe manifest at C:\Windows\assembly\GAC_32\Microsoft.VC80.CRT.mui\8.0.50727.8428_en_1fc8b3b9a1e18e3b\Microsoft.VC80.CRT.mui.DLL.
                INFO: Did not find manifest for culture en.
            INFO: End assembly probing.
    INFO: Resolving reference for ProcessorArchitecture x86.
        INFO: Resolving reference for culture en-US.
            INFO: Applying Binding Policy.
                INFO: No publisher policy found.
                INFO: No binding policy redirect found.
            INFO: Begin assembly probing.
                INFO: Did not find the assembly in WinSxS.
                INFO: Attempt to probe manifest at C:\Windows\assembly\GAC_32\Microsoft.VC80.CRT.mui\8.0.50727.8428_en-US_1fc8b3b9a1e18e3b\Microsoft.VC80.CRT.mui.DLL.
                INFO: Did not find manifest for culture en-US.
            INFO: End assembly probing.
        INFO: Resolving reference for culture en.
            INFO: Applying Binding Policy.
                INFO: No publisher policy found.
                INFO: No binding policy redirect found.
            INFO: Begin assembly probing.
                INFO: Did not find the assembly in WinSxS.
                INFO: Attempt to probe manifest at C:\Windows\assembly\GAC_32\Microsoft.VC80.CRT.mui\8.0.50727.8428_en_1fc8b3b9a1e18e3b\Microsoft.VC80.CRT.mui.DLL.
                INFO: Did not find manifest for culture en.
            INFO: End assembly probing.
 INFO: Resolving reference Microsoft.VC80.ATL,processorArchitecture="x86",publicKeyToken="1fc8b3b9a1e18e3b",type="win32",version="8.0.50727.4053".
    INFO: Resolving reference for ProcessorArchitecture WOW64.
        INFO: Resolving reference for culture Neutral.
            INFO: Applying Binding Policy.
                INFO: No publisher policy found.
                INFO: No binding policy redirect found.
            INFO: Begin assembly probing.
                INFO: Did not find the assembly in WinSxS.
                INFO: Attempt to probe manifest at C:\Windows\assembly\GAC_32\Microsoft.VC80.ATL\8.0.50727.4053__1fc8b3b9a1e18e3b\Microsoft.VC80.ATL.DLL.
                INFO: Did not find manifest for culture Neutral.
            INFO: End assembly probing.
    INFO: Resolving reference for ProcessorArchitecture x86.
        INFO: Resolving reference for culture Neutral.
            INFO: Applying Binding Policy.
                INFO: No publisher policy found.
                INFO: No binding policy redirect found.
            INFO: Begin assembly probing.
                INFO: Did not find the assembly in WinSxS.
                INFO: Attempt to probe manifest at C:\Windows\assembly\GAC_32\Microsoft.VC80.ATL\8.0.50727.4053__1fc8b3b9a1e18e3b\Microsoft.VC80.ATL.DLL.
                INFO: Attempt to probe manifest at C:\Program Files (x86)\Business Objects\BusinessObjects Enterprise 12.0\win32_x86\Microsoft.VC80.ATL.DLL.
                INFO: Attempt to probe manifest at C:\Program Files (x86)\Business Objects\BusinessObjects Enterprise 12.0\win32_x86\Microsoft.VC80.ATL.MANIFEST.
                INFO: Attempt to probe manifest at C:\Program Files (x86)\Business Objects\BusinessObjects Enterprise 12.0\win32_x86\Microsoft.VC80.ATL\Microsoft.VC80.ATL.DLL.
                INFO: Attempt to probe manifest at C:\Program Files (x86)\Business Objects\BusinessObjects Enterprise 12.0\win32_x86\Microsoft.VC80.ATL\Microsoft.VC80.ATL.MANIFEST.
                INFO: Did not find manifest for culture Neutral.
            INFO: End assembly probing.
    ERROR: Cannot resolve reference Microsoft.VC80.ATL,processorArchitecture="x86",publicKeyToken="1fc8b3b9a1e18e3b",type="win32",version="8.0.50727.4053".
 ERROR: Activation Context generation failed.
 End Activation Context Generation.

Also snapped this pick on doing a Dependency Walker on the dll. enter image description here

1
Assuming your guess or something similar is right, it proves the point of avoiding self-registration and custom actions in general. Too bad the problem is in a 3rd-party installer. - Tom Blodget

1 Answers

0
votes

There could be few other reasons such as some dependency missing or the user context under which the bootstrapper executes is different from the working scenario.

The first thing i would do here is to inspect the windows installer logs. To generate , windows installer logs, you can follow the following link:

http://blogs.msdn.com/b/astebner/archive/2005/03/29/help-me-help-you-if-you-have-setup-bugs.aspx

-How are you executing your installer outside of the bootstrapper? Are you installing them in silent mode? Its important to do this as the bootstrapper installs the msi's in silent mode. Are you installing them over an elevated command prompt?

I am asking the above questions as you state that the installation works outside of the bootstrapper.

-Once you hit the error with Self regs, do you get an error message? If yes, instead of clicking on Ok and allowing the installation to roll back, can you go to the folder where the files are copied. Try to register the dll manually from the command prompt and see if you can register the dll.

if none of the above things work, please post a log file from the installation and then we can take it forward.