I'm having a small problem at the moment trying to organise some client updates. We need to bundle some additional software updates for partner applications with our main application (because of problems with their own updating services).
Currently we do this by chaining the partner installers within our own, and we use searches to ensure we only install the application updates. The problem with this approach is that even clients which already have updated versions of the applications with fixed updaters will still download these bundled updates (which are quite large, accounting for ~200GB+ of traffic a day).
To get around this limitation we wanted to list the bundled updates as separate updates in the Advanced Updater update list (the text file on our server which Advanced Updater uses to determine what updates to fetch). This allows us to set conditions for each update so that they are only downloaded if clients are using the older versions of the respective applications which do not have their own updating capability.
The issue with this new system is that when we set a registry key or file as the "Installed Detection" criteria for these bundle updates, the updater doesn't distinguish between a missing file/reg key (no application installed) or a file/reg key with a version below the update version. This means that when we push the update to a client which does not have one of the bundled applications installed, advanced updater will still install (or attempt to install) it. This results in updater errors when the upgrade installers fail because they cannot detect a current installation, and means the user has downloaded the extra installer when they did not even need it.
I would love to know if there is a workaround for this, so i can make Advanced Updater only download updates for applications that are actually installed. If possible, this needs to happen with minimal changes to the update MSIs themselves (they have already been through an extensive QA cycle).
Here is the current layout of the aiu file we have created for this update (I have changed the filenames/urls/etc. due to commercial sensitivity)
Code: Select all
;aiu;
[Main_Update]
Name=Main Application Update
URL=http://some.url.com/Update.msi
Size=15560192
MD5=96d5e595fd1aa2319e7a9c0ce22ed7cd
ServerFileName=Update.msi
Flags=Critical
RegistryKey=HKLM\SOFTWARE\Some\Reg\Key
Version=1.3.33.0
[Partner_Update_1]
Name=Partner Application Update 1
URL=http://some.url.com/Update_P1.msi
Size=41776640
MD5=d21fe1cd06eeae9c855ac3af1db2807c
ServerFileName=Update_P1.msi
Flags=Critical
RegistryKey=HKLM\SOFTWARE\Some\Reg\Key2
Version=1.2.49.0
[Partner_Update_1]
Name=Partner Application Update 2
URL=http://some.url.com/Update_P2.msi
Size=49504456
MD5=3a6dbd9c49031f4d923121ab35b747ee
ServerFileName=Update_P2.msi
Flags=Critical
FilePath=[APPDIR]..\..\Some\Partner\executable.exe
Version=1.5.0.19
FOLLOW US
Get the latest news in Application Packaging