The Update page allows you to control your installer’s behavior in case (a previous version of) the same application is already installed.

The “prevent installation while there is an open window with this class name” allows you to specify the window class used by your application’s main window. The installer will prompt the user to close your application if it detects an open top-level window with this class name. You can specify multiple window class names by delimiting them with semicolons.

The “prevent installation while there is an open window with this caption” allows you to specify the text shown on the caption of your application’s main window. The installer will prompt the user to close your application if it detects an open top-level window with this text as its caption. You have to specify the entire caption. You won’t be able to use this method if your application puts dynamic information in its caption such as the name of the file the user is working on. You can specify multiple captions by delimiting them with semicolons.

If you specify both class names and captions, the installer will prompt the user to close your application as long as there is at least one window that has either one of the window classes you specified, or has one of the captions you specified, or both.

Patch Installers

If you always put all files that your software consists of into every installation package, then DeployMaster will intelligently update the user’s computer when a newer version of your software is installed on top of an older version. You can control whether a particular file should be overwritten or not on the Files page.

The options on the Update page allow you to create installation packages that contain only files that were updated since a certain previous release of your software. Such installation packages are also called “patches”.

If the installation package contains all files that your software consists of, you can turn on the first option. When you do so, and version 2.0 of your software lacks certain files that were included with version 1.0, DeployMaster will delete those files, keeping the user’s computer nice and clean. Obviously, you have to turn off this option if you want to create a “patch” installer.

The user should only be able to install a patch on top of a version of your software that your patch supports. E.g. a patch for 2.0.3 can update versions 2.0.0, 2.0.1 and 2.0.2, but not older 1.x.x releases. DeployMaster can check this requirement.

DeployMaster uses the application release date that you specify on the Project page to differentiate between versions of your software. In our example, you need to specify the release date of version 2.0.0 as the “required version” on the Update page. DeployMaster will check if the currently installed version of your software has an application release date equal to or more recent than the “required version” date on the Update page. If so, the user can install the patch as usual. If not, the installation buttons will be disabled, and the text you enter on the Update page will be displayed. You can enter up to three lines of text. Explaining the requirements of the patch to the user in terms the user will understand. You should mention the base version of the software required and where the user can obtain it.

Remember that DeployMaster differentiates between different applications using the application name that you specify on the Project page. This means that a patch must have the same application name as the base installation that it patches, which obviously also must have been deployed with DeployMaster. This also means that if you concurrently maintain different version lines, both version lines will need different application names. E.g. if it is possible that you will release a version 1.x.x after 2.0.0 has already been released, then you need different application names for both to make sure that the 2.0.3 patch does not consider the latest 1.x.x as a valid base for patching.

Finally, you need to add the files that should be distributed with the patch on the Files page. One way is to open the .deploy file for the full installation package, delete the files that should not be part of the patch from the Files page, and save as a new .deploy file. Another option is to use the .deploy file of the full installation package, and instruct DeployMaster to only include files that were modified after a certain date in the patch. You can do that on the Update page. When you click the Build button, DeployMaster will indicate in the build’s progress which files were skipped because they were not modified since the given date. If any skipped files are used as the target for shortcuts and file types, those will be excluded from the patch as well. Though DeployMaster will warn about this, there is no problem as the base installation should already have created those shortcuts and file types.

Expiring Installers

If you regularly put out new releases, sell software on a subscription basis, or if your application is best before a certain date, you can make your installer expire on that date or a certain number of days after the release date. The date you specify is the day your installer stops working. The number of days you specify is the number of days your installer will work, including the release date. If you set the release date to today and set the installer to expire after two days then the installer will work today and tomorrow. The day after tomorrow it will say it’s expired.

When the user tries to run an expired installer, it will show a message dialog with the text that you provide. The installer will not show its welcome screen. Your message should explain which installer the user is trying to run, that it has expired, and where to obtain a newer version.

The installer simply checks the system clock on the user’s PC to determine whether it has expired. Naughty users can easily bypass the check by fiddling with the system clock. This feature is intended to stop users from wasting their time installing outdated software. If you need to protect your software against people trying to use it after their authorization period has ended then you need to add such protection to the software itself rather than to your installer.