Reputation: 1068
Why do I get two AddRemoveProgram entries if I install the setup.msi
first, and then install the bundle.exe
containing the setup.msi
. Here is the Chain in my bundle.
<Chain>
<PackageGroupRef Id="NetFx40Redist"/>
<MsiPackage SourceFile="$(var.MsiProject.TargetDir)Setup.msi" />
</Chain>
The setup.msi
has a hard-coded ProductCode that was extracted from the bundle.exe
using dark -x
. Shouldn't bundle.exe
detect the already installed setup.msi
and skip the installation?
Upvotes: 2
Views: 880
Reputation: 20772
The first entry is for the MSI; the second for the bundle. An MsiPackage
element has a Visible
attribute that controls whether Burn causes the package to have its own ARP entry visible or not. The default is "no" so in some cases, but not yours, it would result in the two entries.
Yes, Burn does not reinstall packages that are already installed.
Burn is a package manager so it'll always install/uninstall and register/unregister itself. When multiple bundles contain the same packages, Burn figures out which to leave when uninstalling a bundle. Of course, some, like NetFx40Redist, are marked as permanent so the bundle will never uninstall them.
Again, if you'd rather not see an ARP entry for the MSI, be sure to the MsiPackage/@Visible element isn't set to "yes".
Upvotes: 4