That's the only way? Isn't there a way to force the user to uninstall one bundle before installing a new one?
The reason I'm resistant to a custom BA is that I don't know how to approach programming a BA correctly. I know perl, python, bash, some C (from a unix world). I have made ant scripts to run wix commands, and I have learned wix to make an msi and a basic bundle, but the bundle will never pass QA as it is. Are there no other options? On Wed, 2013-07-03 at 02:13 -0700, Blair Murri wrote: > The only way to do that today would be to write a custom BA that cycles > through plan and apply twice: once to remove the previous bundle and the > second time to install the MSI. > > > From: jo...@msli.com > > To: wix-users@lists.sourceforge.net > > Date: Tue, 2 Jul 2013 18:13:45 -0700 > > Subject: [WiX-users] instaling a bundle to install an older msi > > > > Can I make a bundle that always uninstalls the previous msi before > > installing the new one? > > > > I have a bundle that installed an msi. > > > > The bundle Version= 2013.07.01.0, > > the msi Version = 3.0.1 > > the program build 3699. > > > > There was a problem with build 3699 so I must release build 3698, in a > > way that is easy on the users. > > > > May I create a bundle that will install the build 3698 some how? > > > > I tried to increment the bundle Version= 2013.07.02.0, > > and build using the older msi, > > and install the bundle, > > "Programs and Feactures" increments the bundle version, > > but the msi was not downgrade to build 3698. > > > > How can I deal with this situation? > > > > 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.BundleVersion)" > > 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)" > > > > > > > <WixVariable > > Id="WixUIBannerBmp" > > Value="../ProgramFiles/Resources/Images/InstallerHeaderImage.bmp" > > /> > > <!-- 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)" > > /> > > <!-- Will not install if already installed and 32bit --> > > <MsiPackage > > Id="MyProgramInstaller" > > Name="$(var.MSI_Product)" > > DisplayName="Compass" > > Description="Compass Installation" > > DisplayInternalUI="yes" > > EnableFeatureSelection="yes" > > Vital="yes" > > Visible="no" > > ForcePerMachine="yes" > > Cache="yes" > > Compressed="yes" > > Permanent="no" > > SourceFile="..\Installers\$(var.MSI_Product)" > > /> > > </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 ------------------------------------------------------------------------------ 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