So, I have a fairly simple installer for recording, primarily to enable .net updates, or sometimes for the driver package for the equipment with which we need to communicate.
At MSI, we are creating support for upgrades or downgrades.
<?xml version="1.0" encoding="UTF-8"?> <Wix xmlns="http://schemas.microsoft.com/wix/2006/wi" xmlns:bal="http://schemas.microsoft.com/wix/BalExtension"> <Bundle Name="My App Name" Manufacturer="Company Name" Version="!(bind.packageVersion.MyAPP_MSI)" IconSourceFile="MyIcon.ico" DisableModify="yes" DisableRemove="yes" UpgradeCode="{15E598EF-89CE-470B-8CEF-E32C8983DA33}" > <BootstrapperApplicationRef Id="WixStandardBootstrapperApplication.RtfLicense" > <bal:WixStandardBootstrapperApplication LogoFile="$(var.CoreComponents.TargetDir)InstallerGraphics\Bootstrapper_Logo.png" LicenseFile="$(var.CoreComponents.TargetDir)AppRoot\App License.rtf" SuppressOptionsUI="yes" /> </BootstrapperApplicationRef> <Chain> <PackageGroupRef Id="NetFx451Web"/> <MsiPackage DisplayName="My full Application Name" Id="MyAPP_MSI" SourceFile="$(var.Installer_MyAppMSI_TargetPath)" DisplayInternalUI="yes" ForcePerMachine="yes" Visible="yes" /> <MsiPackage DisplayName="My Hardware Driver" Id="Installer_MSI_Driver" SourceFile="$(var.Installer_Driver.TargetPath)" DisplayInternalUI="yes" ForcePerMachine="yes" Visible="yes" /> </Chain> </Bundle> </Wix>
Usually we have beta versions, and when a user wants to switch from beta to our stable releases, they cannot just execute the old EXE installer. They must uninstall the previous package from Add or Remove Programs explicitly in order to install the older Burn EXE.
This is not a problem with installing MSI. How do we get back to this functionality?
Journal
[0CB8:067C][2014-06-23T11:10:04]i001: Burn v3.8.1128.0, Windows v6.1(Build 7601: Service Pack 1), path:\\iop-filesvr\IOP\Builds\Main\8.1.240\IO Practiceware Client Setup.exe, cmdline: '-burn.unelevated BurnPipe.{197B8193-6EFC-4ED0-AF90-DE7205F13E65} {CD23A8AB-520B-4F5D-BCB9-98998C5A1EC0} 2216' [0CB8:067C][2014-06-23T11:10:04]i000: Setting string variable 'WixBundleLog' to value 'C:\Users\jeff\AppData\Local\Temp\IO_Practiceware_Client_8.1.240.0_20140623111004.log' [0CB8:067C][2014-06-23T11:10:04]i000: Setting string variable'WixBundleOriginalSource' to value '\\iop-filesvr\IOP\Builds\Main\8.1.240\IO Practiceware ClientSetup.exe' [0CB8:067C][2014-06-23T11:10:04]i000: Setting string variable 'WixBundleName' to value 'IO Practiceware Client 8.1.240.0' [0CB8:067C][2014-06-23T11:10:05]i100: Detect begin, 2 packages [0CB8:067C][2014-06-23T11:10:05]i000: Setting string variable 'PrerequisitesVersion' to value '1.0.0.0' [0CB8:067C][2014-06-23T11:10:05]i102: Detected related bundle: {8d398d25-606f-419a-9b29-e3434aeb2485}, type: Upgrade, scope: PerUser, version: 8.1.241.0, operation: Downgrade [0CB8:067C][2014-06-23T11:10:05]i103: Detected related package: {7EA877FF-CE7A-49CE-8F76-D5A11EA7DD7A}, scope: PerMachine, version: 1.0.0.0, language: 0 operation: MajorUpgrade [0CB8:067C][2014-06-23T11:10:05]i103: Detected related package: {8E8A7689-FB1C-4FE5-AF7C-95D499A342DE}, scope: PerUser, version: 8.1.241.0, language: 0 operation: MajorUpgrade [0CB8:067C][2014-06-23T11:10:05]i101: Detected package: PrerequisitesMsi, state: Absent, cached: None [0CB8:067C][2014-06-23T11:10:05]i101: Detected package: ClientMsi, state: Absent, cached: None [0CB8:067C][2014-06-23T11:10:05]i199:Detect complete, result: 0x0 [0CB8:076C][2014-06-23T11:10:16]i000: Setting numeric variable 'EulaAcceptCheckbox' to value 0 [0CB8:076C][2014-06-23T11:10:16]e000: Error 0x80070666: Cannot install a product when a newer version is installed.
source share