Look at it this way. Visual Studio 2012 Ultimate shows as one ARP entry but in reality it installed several "hidden" MSI's (I forget if it was 119 or ...). Since the system as a whole is needed for the application to function, you wouldn't want hundreds of packages visible in ARP if they shouldn't be individually uninstalled.
In your example, what's to say you didn't add another MSI in the second build? Had you incremented the version number, you should of only had one ARP entry with the MSI's not being updated because they were already there. Had a MSI changed, then the superseded MSI would have been uninstalled and the new one installed with the old bundle being removed. The reason the second bundle is in ARP is because the bundle did install, it just didn't have anything to do. If after installing your second bundle, you remove the first, you could do a repair on the second to have it reinstall the missing payload (if in fact the dependency information wasn't incremented to prevent the original MSI's from being uninstalled). As for it being "too easy to miss" the versioning rules... There are lots of ways to automate the generation, be it from a base Major.Minor and utilizing a text file to add the build portion, utilizing the current date to define a version number, or a limitless number of creative solutions you can find on the web. Decide which scheme works best for you, add the needed MSBuild task(s) to do it, and you should not have this problem again. If you really want to support same version upgrades, you would have to write your own BA. -----Original Message----- From: jo...@msli.com [mailto:jo...@msli.com] Sent: Monday, June 17, 2013 4:23 PM To: General discussion for Windows Installer XML toolset. Subject: Re: [WiX-users] bundle installed multiple times I built my bundle, and ran it, which installed everything in the chain. Then I rebuilt my bundle, and ran it, without incrementing Version, which installed nothing, except it did add itself to "Programs and Features". I now see two entries for the same Version of the installer: one that actually installed stuff, one that installed nothing. Are you are saying it should have rolled back or not added an entry? Although not normal, since I did not manually increment Version, it should not have add a second entry in "Programs and Features", so it sounds like it is broken. When would that ever be a useful behavior? I am using the standard WixStandardBootstrapperApplication. Seems like the WixStandardBootstrapperApplication should know better. My Version policy for bundles doesn't exist yet, as I am learning to work with wix bundles. Normally I have a version for my application, and it does not change from the target release name. Wix seems to require a Version for the bundle it self, which seems like a strange maintenance step, and I don't see the usefulness yet. I would rather just create bundles, and have logic in each bundle to decide what to install, and if nothing installs, not add an entry for the bundle in "Programs and Features". On Mon, 2013-06-17 at 12:20 -0700, Rob Mensching wrote: > 1. If a Bundle fails to install everything in the chain, it should > rollback and not have anything left in ARP. > > 2. If you want it to block, your BA would need to do that. If you're > using wixstdba, I think it automatically blocks downgrades. IIRC, it > doesn't block same versions because that's not a normal user scenario. > It should only happen in dev scenarios where one forgot to > accidentally remove previous build. > > 3. It depends on what BA you are using. > > You can do whatever you want with your versioning policy in a BA. It > isn't quite clear to me what versioning policy you're using. When do > you change the version number? > > > On Mon, Jun 17, 2013 at 11:41 AM, jo...@msli.com <jo...@msli.com> wrote: > > > I don't understand. > > > > If a bundle fails to install everything in the chain, why does it > > add it self to "Programs and Features"? > > > > If I already have Version 1.0.0 of a bundle installed, why would it > > add another entry for Version 1.0.0? > > > > Is there some way to use WixBundleInstalle to reject the install of > > another Version 1.0.0? > > > > Part of the development cycle is making the bundle at some version, > > and incrementing Version on each attempt seems too easy to result in > > duplicate entries to "Programs and Features". There seems to be no > > way to protect against this eventuality. > > > > On Mon, 2013-06-17 at 11:21 -0700, Rob Mensching wrote: > > > The general expectation is that when you make a new build, you'll > > increment > > > the version. The WiX toolset's Bundle increments based on the date > > > (we don't do multiple builds in the same day). > > > > > > You could write a custom BA to allow "same version upgrades". Burn > > > engine doesn't have support for that yet today. > > > > > > The current experience is identical to the MSI behavior if you > > > don't set allow same version upgrades. > > > > > > > > > On Mon, Jun 17, 2013 at 10:55 AM, jo...@msli.com <jo...@msli.com> wrote: > > > > > > > Incrementing Version for every single bundle is going to be > > problematic. > > > > Everyone will have to track and increment this Version or suffer > > > > duplicate entries in "Programs and Features". > > > > > > > > If I build and install my bundle (with version=1.0.0), then > > > > build and install my bundle again (with version=1.0.0), I get > > > > duplicate entries > > in > > > > "Programs and Features", even though the second bundle did not > > > > install anything since everything is already installed, and all > > > > of the payload remains the same. > > > > > > > > My msi has a guid that prevents this form happening. > > > > > > > > Is there no way to prevent duplicate entries? > > > > > > > > On Fri, 2013-06-14 at 21:27 -0700, Rob Mensching wrote: > > > > > Increment the version so the new ones remove the old ones? > > > > > > > > > > > > > > > On Fri, Jun 14, 2013 at 6:17 PM, jo...@msli.com > > > > > <jo...@msli.com> > > wrote: > > > > > > > > > > > Is there a way to prevent a bundle from being installed > > > > > > multiple > > times? > > > > > > I see many entries in "Programs and Features". > > > > > > > > > > > > My bundle wxs: > > > > > > <?xml version="1.0" encoding="UTF-8"?> <Wix > > > > > > xmlns="http://schemas.microsoft.com/wix/2006/wi" > > > > > > xmlns:bal="http://schemas.microsoft.com/wix/BalExtension" > > > > > > xmlns:util="http://schemas.microsoft.com/wix/UtilExtension" > > > > > > > > > > > > > > > > > > > <Bundle > > > > > > Name="$(var.MyInstallerName)" > > > > > > Version="$(var.Version)" > > > > > > Manufacturer="$(var.MyCompanyName)" > > > > > > Copyright="(c) All rights reserved." > > > > > > UpgradeCode="{$(var.Guid_Bundle)}" > > > > > > HelpTelephone="$(var.HelpPhone)" > > > > > > HelpUrl="$(var.HelpUrl)" > > > > > > UpdateUrl="$(var.UpdateUrl)" > > > > > > AboutUrl="$(var.AboutUrl)" > > > > > > Condition="((VersionNT >= v5.1) AND (ServicePackLevel >= > > > > > > 3)) OR ((VersionNT >= v5.2) AND (ServicePackLevel >= 2)) OR > > > > > > (VersionNT >= > > > > v6.0)" > > > > > > IconSourceFile="$(var.ProdIcon)" > > > > > > > > > > > > > > > > > > > <!-- Display License and Logo > > > > > > The URL is to the EULA embeded in the installer --> > > > > > > <BootstrapperApplicationRef > > > > > > Id="WixStandardBootstrapperApplication.HyperlinkLicense" > > > > > > > > > > > > > <bal:WixStandardBootstrapperApplication > > > > > > LicenseUrl="EULA.html" > > > > > > LogoFile="$(var.ProdIcon)" > > > > > > SuppressRepair="yes" > > > > > > SuppressOptionsUI="yes" > > > > > > /> > > > > > > <Payload Name="EULA.html" SourceFile="$(var.EULA)"/> > > > > > > </BootstrapperApplicationRef> > > > > > > > > > > > > <!-- BEGIN Conditional Def --> > > > > > > <!-- Check if WinPcap is installed and at least some > > > > > > version > > --> > > > > > > <util:RegistrySearch > > > > > > Id="RegistrySearchWinPcapHas" > > > > > > Variable="WinPcapInstalled" > > > > > > Root="HKLM" > > > > > > > > > > > > > > Key="SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\WinPcapInst" > > > > > > Result="exists" > > > > > > /> > > > > > > <util:RegistrySearch > > > > > > Id="RegistrySearchWinPcapMajor" > > > > > > Variable="WinPcapVersionMajor" > > > > > > Root="HKLM" > > > > > > > > > > > > > > Key="SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\WinPcapInst" > > > > > > Value="VersionMajor" > > > > > > Format="raw" > > > > > > Result="value" > > > > > > /> > > > > > > <util:RegistrySearch > > > > > > Id="RegistrySearchWinPcapMinor" > > > > > > Variable="WinPcapVersionMinor" > > > > > > Root="HKLM" > > > > > > > > > > > > > > Key="SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\WinPcapInst" > > > > > > Value="VersionMinor" > > > > > > Format="raw" > > > > > > Result="value" > > > > > > /> > > > > > > <!-- Check if Bounjour Print Services is installed --> > > > > > > <util:RegistrySearch > > > > > > Id="RegistrySearchBonjourHas" > > > > > > Variable="BonjourDLL" > > > > > > Root="HKLM" > > > > > > Key="SOFTWARE\Classes\AppID\Bonjour.DLL" > > > > > > Result="exists" > > > > > > /> > > > > > > <util:RegistrySearch > > > > > > Id="RegistrySearchBonjourValue" > > > > > > Variable="BounjourVersion" > > > > > > Root="HKLM" > > > > > > Key="SOFTWARE\Apple Inc.\Bonjour" > > > > > > Value="Version" > > > > > > Format="raw" > > > > > > Result="value" > > > > > > /> > > > > > > <!-- Check if Avdeccproxy is installed and at least some > > version > > > > --> > > > > > > <util:RegistrySearch > > > > > > Id="RegistrySearchProxyHas" > > > > > > Variable="ProxyInstalled" > > > > > > Root="HKLM" > > > > > > Key="SOFTWARE\Meyer Sound\AVDECC Proxy" > > > > > > Result="exists" > > > > > > /> > > > > > > <!-- END Conditional Def --> > > > > > > > > > > > > <!-- Begin Chain --> > > > > > > <Chain> > > > > > > <!-- Will not install if 4.1.3 or better is installed > > > > > > If installing, download from Internet --> > > > > > > <ExePackage > > > > > > Id="WinPcap" > > > > > > Name="WinPcap_4_1_3.exe" > > > > > > Vital="no" > > > > > > Compressed="no" > > > > > > DownloadUrl=" > > > > http://www.winpcap.org/install/bin/WinPcap_4_1_3.exe" > > > > > > InstallCondition="NOT WinPcapInstalled OR ( 4 > > > > > > > WinPcapVersionMajor AND 1 > WinPcapVersionMinor)" > > > > > > Permanent="yes" > > > > > > > > > > > > > <RemotePayload > > > > > > Description="WinPcap 4.1.3 installer" > > > > > > Hash="e2516fcd1573e70334c8f50bee5241cdfdf48a00" > > > > > > ProductName="WinPcap 4.1.3" > > > > > > Size="915128" > > > > > > Version="4.1.0.2980" > > > > > > /> > > > > > > </ExePackage> > > > > > > <!-- Will not install if 2.0.2.0 or better is installed > > > > > > If installing download from the Internet --> > > > > > > <ExePackage > > > > > > Id="BonjourPSSetup" > > > > > > Name="BonjourPSSetup.exe" > > > > > > Vital="no" > > > > > > Compressed="no" > > > > > > DownloadUrl=" > > > > > > http://support.apple.com/downloads/DL999/en_US/BonjourPSSetup.exe" > > > > > > InstallCondition="NOT BonjourDLL OR v2.0.2.0 > > > BonjourVersion" > > > > > > Permanent="yes" > > > > > > > > > > > > > <RemotePayload > > > > > > ProductName="BonjourPrintServices" > > > > > > Description="Bonjour Printer Services Installer" > > > > > > Size="5436744" > > > > > > Version="2.0.2.0" > > > > > > Hash="847f39e0ea80d2a4d902fe59657e18f5bc32a8cb" > > > > > > /> > > > > > > </ExePackage> > > > > > > <!-- Will not install if already installed > > > > > > msi embeded in installer --> > > > > > > <MsiPackage > > > > > > Id="MyProxy" > > > > > > Name="$(var.MSI_Proxy)" > > > > > > DisplayName="Proxy" > > > > > > Description="Proxy Installation" > > > > > > DisplayInternalUI="yes" > > > > > > EnableFeatureSelection="yes" > > > > > > Vital="yes" > > > > > > Visible="yes" > > > > > > ForcePerMachine="yes" > > > > > > Cache="yes" > > > > > > Compressed="yes" > > > > > > Permanent="yes" > > > > > > SourceFile="..\Installers\$(var.MSI_Proxy)" > > > > > > InstallCondition="NOT ProxyInstalled" > > > > > > /> > > > > > > <!-- Will not install if already installed and 32bit --> > > > > > > <MsiPackage > > > > > > Id="MyProgramInstaller" > > > > > > Name="$(var.MSI_Product)" > > > > > > DisplayName="MyProgram" > > > > > > Description="MyProgram Installation" > > > > > > DisplayInternalUI="yes" > > > > > > EnableFeatureSelection="yes" > > > > > > Vital="yes" > > > > > > Visible="no" > > > > > > ForcePerMachine="yes" > > > > > > Cache="yes" > > > > > > Compressed="yes" > > > > > > Permanent="no" > > > > > > SourceFile="..\Installers\$(var.MSI_Product)" > > > > > > InstallCondition="NOT Installed" > > > > > > /> > > > > > > </Chain> > > > > > > </Bundle> > > > > > > </Wix> > > > > > > > > > > > > > > > > > > > > > > > > NOTICE: This email may contain confidential information. > > > > > > Please > > see > > > > > > http://www.meyersound.com/confidential/ for our complete policy. > > > > > > > > > > > > > > > > > > > > > > > > -------------------------------------------------------------------- > > ---------- > > > > > > This SF.net email is sponsored by Windows: > > > > > > > > > > > > Build for Windows Store. > > > > > > > > > > > > http://p.sf.net/sfu/windows-dev2dev > > > > > > _______________________________________________ > > > > > > WiX-users mailing list > > > > > > WiX-users@lists.sourceforge.net > > > > > > https://lists.sourceforge.net/lists/listinfo/wix-users > > > > > > > > > > > > > > > > > > > > > > > -------------------------------------------------------------------- > > ---------- > > > > > This SF.net email is sponsored by Windows: > > > > > > > > > > Build for Windows Store. > > > > > > > > > > http://p.sf.net/sfu/windows-dev2dev > > > > > _______________________________________________ > > > > > WiX-users mailing list > > > > > WiX-users@lists.sourceforge.net > > > > > https://lists.sourceforge.net/lists/listinfo/wix-users > > > > > > > > > > > > > > > > NOTICE: This email may contain confidential information. Please > > > > see http://www.meyersound.com/confidential/ for our complete policy. > > > > > > > > > > > > > > -------------------------------------------------------------------- > > ---------- > > > > This SF.net email is sponsored by Windows: > > > > > > > > Build for Windows Store. > > > > > > > > http://p.sf.net/sfu/windows-dev2dev > > > > _______________________________________________ > > > > WiX-users mailing list > > > > WiX-users@lists.sourceforge.net > > > > https://lists.sourceforge.net/lists/listinfo/wix-users > > > > > > > > > > > > > -------------------------------------------------------------------- > > ---------- > > > This SF.net email is sponsored by Windows: > > > > > > Build for Windows Store. > > > > > > http://p.sf.net/sfu/windows-dev2dev > > > _______________________________________________ > > > WiX-users mailing list > > > WiX-users@lists.sourceforge.net > > > https://lists.sourceforge.net/lists/listinfo/wix-users > > > > > > > > NOTICE: This email may contain confidential information. Please see > > http://www.meyersound.com/confidential/ for our complete policy. > > > > > > -------------------------------------------------------------------- > > ---------- This SF.net email is sponsored by Windows: > > > > Build for Windows Store. > > > > http://p.sf.net/sfu/windows-dev2dev > > _______________________________________________ > > WiX-users mailing list > > WiX-users@lists.sourceforge.net > > https://lists.sourceforge.net/lists/listinfo/wix-users > > > > > ---------------------------------------------------------------------- > -------- This SF.net email is sponsored by Windows: > > Build for Windows Store. > > http://p.sf.net/sfu/windows-dev2dev > _______________________________________________ > WiX-users mailing list > WiX-users@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/wix-users NOTICE: This email may contain confidential information. Please see http://www.meyersound.com/confidential/ for our complete policy. ------------------------------------------------------------------------------ This SF.net email is sponsored by Windows: Build for Windows Store. http://p.sf.net/sfu/windows-dev2dev _______________________________________________ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users ------------------------------------------------------------------------------ This SF.net email is sponsored by Windows: Build for Windows Store. http://p.sf.net/sfu/windows-dev2dev _______________________________________________ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users