因此,我有一个Wix引导程序,可以安装VC++ 2005(x86)可再发行组件,还可以安装第三方MSI, dll文件。当我在引导程序之外安装VC++ 2005(x86)时,一切正常,引导程序链跳过VC++安装,并安装需要SelfRegs的MSI而没有问题。但是,当我的引导程序在MSI之前安装VC++ Redistributable时,它依赖于它,因为SelfRegs失败。Wix bootstrapper遇到MSI需要使用SelfReg和VC++ 2005的问题
现在,如果我猜测这个问题可能与环境变量有关,在引导程序链中没有刷新,因此重新引导可以修复它。我宁愿选择另一种解决方案,并想知道其他人是否可以对发生的事情有一个概念,并给我一个替代方案。因此,当我遇到故障时,我可以确认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.
还在这个选择上做了一个Dependency Walker的dll。
假设你的猜测或类似的东西是正确的,它证明了避免自我注册和自定义操作的重要性。太糟糕了,问题出在第三方安装程序中。 –