2014-01-21 59 views
2

如果我先安装setup.msi,然后再安装包含setup.msibundle.exe,为什么会收到两个AddRemoveProgram条目?这是我捆绑的链条。如果先安装MSI,然后再安装包含MSI的软件包,则会出现两个ARP条目

<Chain> 
    <PackageGroupRef Id="NetFx40Redist"/> 
    <MsiPackage SourceFile="$(var.MsiProject.TargetDir)Setup.msi" /> 
</Chain> 

setup.msi的具有从bundle.exe使用dark -x提取的硬编码的ProductCode。 bundle.exe是否应检测已安装的setup.msi并跳过安装?

回答

4

第一个条目是针对MSI的;第二个为捆绑。 MsiPackage元素具有Visible属性,该属性控制Burn是否导致程序包拥有自己的ARP条目可见或不可见。默认值是“否”,所以在某些情况下,但不是你的,它会导致两个条目。

是的,刻录不会重新安装已安装的软件包。

Burn是一个软件包管理器,所以它会一直安装/卸载并注册/取消注册。当多个软件包包含相同的软件包时,Burn会指出卸载软件包时应该保留哪些软件包。当然,有些人,比如NetFx40Redist,被标记为永久性的,因此该包永远不会卸载它们。同样,如果您不想看到MSI的ARP条目,请确保MsiPackage/@ Visible元素未设置为“yes”。

+0

啊,你绝对正确!多么愚蠢的是,我完全不知道这一点。感谢! – Peter

+0

@Peter,别忘了接受答案;) –

+0

@Yan,对吧。我upvoted但忘记接受。 XD – Peter