Wix引导程序在使用VC ++ 2005需要SelfReg的MSI时遇到问题

时间:2015-07-20 22:59:17

标签: wix

所以我有一个Wix引导程序,可以安装VC ++ 2005(x86)Redistributable等,还可以安装第三方MSI,它可以在其中一个dll的失败的SelfReg上失败。当我在引导程序之外安装VC ++ 2005(x86)时,一切正常,引导程序链跳过VC ++安装并安装需要SelfRegs的MSI而没有问题。但是,当我的引导程序在MSI之前安装VC ++ Redistributable时,它依赖于它失败,因为SelfRegs失败。

现在,如果我猜测问题可能与环境变量有关,而不是在引导程序链中刷新,因此重启可能会修复它。我更喜欢另一种解决方案,并想知道其他人是否可能知道发生了什么,并给我一个替代方案。

更新: 因此,当我遇到故障点时,我可以确认VC ++ 2005(x86)安装在日志文件,HKLM / SOFTWARE / Microsoft / DevDiv / VC / 8.0 / RED / 1033 / Install和清单中的注册表项中C:\ Windows \ WinSxS \ Manifests中的文件。当我尝试使用Regsvr32.exe手动自行注册DLL时运行sxstrace,我得到了这个日志。

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

此处还选择在dll上执行Dependency Walker。 enter image description here

1 个答案:

答案 0 :(得分:0)

可能没有其他原因,例如某些依赖项缺失或者引导程序执行的用户上下文与工作方案不同。

我要做的第一件事是检查Windows安装程序日志。 要生成Windows安装程序日志,您可以按照以下链接进行操作:

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

- 您如何在引导程序之外执行安装程序? 你是以静音模式安装它们吗?当引导程序以静默模式安装msi时,这一点非常重要。 您是否通过提升的命令提示符安装它们?

我问上述问题,因为您声明安装在引导程序之外工作。

- 一旦您使用Self regs遇到错误,您会收到错误消息吗? 如果是,则可以转到复制文件的文件夹,而不是单击“确定”并允许安装回滚。尝试从命令提示符手动注册dll,看看是否可以注册dll。

如果以上都不起作用,请从安装中发布一个日志文件,然后我们就可以推进。