InstallAware for Windows Installer
 

InstallAware Inline Update

InstallAware Inline Update is a command line utility which may be used to issue inline updates to large monolithic or web deployed setups over low bandwidth connections.

While the InstallAware platform permits creation of both binary differential patches and unlimited web updates, as well as precise targeting of updates for each of your product versions and editions; it may also be necessary for you to issue full version updates (inline updates) for your main application downloads.

The utility is invoked as follows:

miaiu.exe [binaryfile] [!es | !et | !ec | !md | !us]
[/i=<indexfile>] [/if=<targetinputfolder>]
[/o=<outputfolder>] [/p=<password>] [/v=<version>] <binaryfile> Full/partial path to built setup executable to update es Extract data from source setup, must pass setup as first parameter et Create delta from target setup, must pass setup as first parameter ec Create delta from comparison of previously indexed setups md Merge delta from input folder into output folder us Update setup by rebuilding files in merged output folder /v New version number to inject when updating setup /i Index file from source setup (required for !et and !ec) /if Input folder from target setup (required for !ec and !md) /o Output folder for operation (always required) /p Password for operation (required for encrypted setups)

The inline update utility returns the following codes to indicate success/failure:

  • 0: Operation completed successfully
  • 2: Invalid command line parameters
  • 3: Unhandled fatal exception during operation

Inline Update Workflow

There are three major steps to issuing an inline update.

Before using this utility, ensure that you have built both your old and new setup versions normally using the InstallAware platform.

Be careful not to mix setups built with different source layouts and/or source caching options when updating inline.

1. Extracting Old (and New) Version Setup Source(s)

First, extract the files found in both your old and new setup versions. The source extraction process calculates MD5 checksums for each file found inside each setup package, which is later used in determining the files that need to be updated inline.

Your old and new setup versions may reside on physically different locations - in fact, if you are finding yourself having to issue remote inline updates, this is most likely the case.

To extract the sources of any setup, use a command line similar to the following:

miaiu.exe c:\setups\old.exe "/o=d:\extracted old setup" "/p=my old password" !es

You may use the !es flag to extract both old and new version setups. You do not need to specify a password unless the setup to extract has been encrypted.

Once extraction is complete, an index file containing MD5 checksums for the entire package will be found at the output folder location, named miaiu.txt. You will need to use this file in the following steps.

Ensure to also preserve the entire contents of the folder where the old setup has been extracted into, as the delta from the new setup will be merged into this folder in the following steps.

2. Calculating the Version Delta

Assuming the old and new setup sources are at physically different locations, first download the index file named miaiu.txt generated in step #1 above to the computer where the new setup is located. The index file is plain text and highly compressible, making its transmission over low bandwidth connections very easy.

Then, if you previously extracted both the old and new version setup sources using the !es flag, use a command line similar to the following to directly calculate the version delta using the !ec flag:

miaiu.exe "/i=d:\extracted old setup\miaiu.txt" "/if=d:\extracted new setup" "/o=d:\calculated delta" !ec

Or, you may combine the source extraction for the target setup step and the delta generation step into one command line using the !et flag:

miaiu.exe c:\setups\new.exe "/o=d:\extracted new setup" "/p=my new password" "/i=d:\extracted old setup\miaiu.txt" !et

Once the delta has been calculated, all updated files will be copied into the output folder as specified on either command line.

If the delta contains any files which have not actually been modified in between the old and new setup versions, ensure that you are not mixing setups built with different source layouts and/or source caching options.

3. Integrating the Version Delta and Repackaging

The last step is to actually merge the delta with the old version of the setup, and repackage the output.

Assuming the old and new setup sources are at physically different locations, first compress the delta folder (located inside the output folder specified in step #2 above), together with the list of files to be merged (miaiu-copy.txt) and the list of files to be deleted (miaiu-delete.txt) from the old setup version sources.

This compressed data is all you need to upload to the computer containing the old setup version. After the upload is complete, extract the compressed data - you are now ready to merge the changes into the old setup sources (previously extracted in step #1 above):

miaiu.exe "/if=d:\calculated delta" "/o=d:\extracted old setup" !md

Ensure that the folder specified as the target setup input folder contains both the file lists (miaiu-copy.txt and miaiu-delete.txt) at the root of the specified folder, and the delta subfolder as the immediate subfolder of the specified folder (as created in step #2 above).

Finally, re-compress the merged setup sources to finish the inline update. You may optionally specify a file version number to inject into the newly built setup, as well as an encryption password:

miaiu.exe "/o=d:\extracted old setup" /v=1.1 "/p=my new password" !us

Congratulations! You have now completed the inline update process. You will find the inline updated setup files inside the root of the specified output folder.

 Notes

  • The inline update tool is not available with the InstallAware Express or Developer editions.
  • The inline update tool is not included in a minimum installation of InstallAware.