2014-01-21 106 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