Copyright 2005-2006 Steel Bytes
Integrare is a Win32 file patching utility. It allows you to easily provide updates to software you have created. However, instead of forcing your users to download and install large amounts of data, Integrare allows your users to only download what has changed between versions. This ultimately reduces the size of updates and patches, resulting in quicker downloads and easier distribution.
OK. You've developed a new 3D computer game which ends up being about a 200MB download. Let's call this version 1.0. (Let's assume you bought cheap TV airtime and advertised your game, so that thousands download it. ;)). Then, you unfortunately notice a few mistakes in your masterpiece: some buggy code, missing graphics files, and some sound tracks which are far too short to be enjoyable. You'd like to fix the code, add the few graphics, increase the length of the music tracks, and provide an update to your ever-impatient customer base. Several options arise: A) you could force them to redownload the entire game (*puke*), B) you could create a setup package with just the changed and added files (*cough*), or C) use Integrare. Integrare is similar to using option B, except that only the differences in files are recorded in Integrare's setup package. That is, if you extended your music track from 2 minutes to 2.5 minutes, why have the user download the whole file again, just to overwrite 80% of it with what was already (correctly) there?
Building updates with Integrare can be done it two styles, GUI or command line. Both achive the same thing, but the later can be easily automated. In GUI mode, just enter your settings, and press Build. Your settings can also be loaded and saved for later use.
This is the title that the users will see when running this patch. I suggest including the version number that they are updating to in the patch, or, better yet, text such as "Application Updater - version 1.1->1.2".
Straightforward. This is just the text that the user will see on the first page of the patch installation process.
This is the license agreement you'd like your users to agree to, prior to installing the patch on their system. Leave this blank to disable the license screen and prevent the user from having to agree to a license agreement.
This allows a password to be set on the patch. The patch can only be run if the user enters this password first. can be left blank to disable.
This is simply the path and filename of the patch executable file. This is the file that you will ultimately make available for your users to download, to update their copy of your software.
Choice of language for final .EXE
This is where Integrare is "most likely to find your application". In your setup package, you probably have a default folder, so that if the user keeps clicking next, not reading anything, the application will be installed to this default location. This is what Integrare expects to find in this field. This setting can contain the magic string %programfiles% which will be replaced on the fly.
If the user has changed the location, and thus this folder does not point to your program, Integrare will additionally search icons on the desktop and startmenu, trying to find your program. If still unsuccessful, the user will be asked where it is located, before Integrare continues. an installation is verifiedby having the file listed in 'keyfile' present, and with the same CRC and size as in the existing version or the new version
This is how Integrare "knows" where your program is. When checking the default folder, and targets of desktop and startmenu icons, it finds your installed application by looking for the file specified in this field. In addition to filename, Integrare ensures that the CRC and filesize are the same before patching the files in that directory. Of course, this is so Integrare doesn't find a program with the same keyfile as yours, and start patching (and, certainly, corrupting) another application. The keyfile should be the main executable of your application (I.E. the one the user executes to start the program). Note, this filename is specified relative to the default install folder, eg. if the default install folder is "c:\program files\myapp" and the main .exe is "c:\program files\myapp\bin\main.exe" then enter bin\main.exe as the keyfile name.
if your app creates a named mutex while running (eg, to stop multiple instances of your app being executed simulatenously), then you can enter that name here so that the updater will check first to see if your app is running.
This is the folder that is the 'base' for 'Installation of Existing & New Versions' & 'Output Path'. May be blank to use current.
Existing Version is the folder containing the files which constituded your setup package for the current version of your application that your users have installed. For example, you probably have a folder where you keep all files which make up your software application, and from which your setup package is built. Such a folder is an appropriate one to enter as Folder Existing. Folder New is the folder which holds the new version of your application, that you'd like this patch to update to. Note that, due to having to enter the old and new version folders, you must keep two copies of your applications available while building the update with Integrare. Folder Existing contains the files making up the version that your users have, and folder New is the folder with the files making up the new version. Integrare will compare files in folder Existing, to those in folder New, and create the patch based on their differences.
This is a file mask (such as *) indicating which files between the Existing and New folders you'd like Integrare to compare. Most likely, this will remain at *, since you probably want to "synchronize" the user's old version to your new version, exactly as stored in New folder. Note: multiple wildcards can be specifed by seperating them with ':'
With Include Files Filter as a starting point, this specifies the files that you do not want included in the patch. For instance, if infilter is *, and Exclude Files Filter is *.dat, then all files, except *.dat files, will be examined by Integrare for changes. Note: multiple wildcards can be specifed by seperating them with ':'
Save your settings entered in the GUI mode, and then place it on the command line using the following syntax:
start /B /WAIT /BELOWNORMAL integrare [/L logfile] <buildfile.txt>
Note: on versions of Windows prior to XP, the output during building will not be displayed in CLI mode, this is due to Integrare using a newer API call; AttachConsole(). This is primary reason the /L option exists.