如果我先安装setup.msi
,然后安装包含bundle.exe
的{{1}},为什么会收到两个AddRemoveProgram条目。这是我的捆绑链。
setup.msi
<Chain>
<PackageGroupRef Id="NetFx40Redist"/>
<MsiPackage SourceFile="$(var.MsiProject.TargetDir)Setup.msi" />
</Chain>
有一个硬编码的ProductCode,使用 setup.msi
从bundle.exe
中提取。不应dark -x
检测已安装的bundle.exe
并跳过安装吗?
答案 0 :(得分:4)
第一个条目是MSI;捆绑的第二个。 MsiPackage
元素具有Visible
属性,该属性控制Burn是否导致包具有自己的ARP条目可见。默认值为“no”,所以在某些情况下,但不是你的,这将导致两个条目。
是的,Burn不会重新安装已安装的软件包。
Burn是一个包管理器,所以它总是安装/卸载并注册/取消注册。当多个包包含相同的包时,Burn会计算卸载包时要留下的包。当然,有些像NetFx40Redist一样被标记为永久性,因此捆绑包永远不会卸载它们。
同样,如果您不想看到MSI的ARP条目,请确保MsiPackage / @ Visible元素未设置为“是”。