Deployment Log

During the installation, DeployMaster saves its actions into a log file. This information is needed when the user wants to upgrade or uninstall your software.

However, your application can also use this log to see which components and files have actually been installed, so it can adjust its interface appropriately. It is a plain text file, which makes it easy for both the user and your application to inspect what DeployMaster did to the system.

The log is saved under %APPFOLDER%\Deploy.log by default. If the file already exists, a number is appended and increased until a non-existing filename is found (e.g.:Deploy3.log). This can happen if the user installs several programs into the same folder. In any case, your application can locate the log by opening the HKEY_LOCAL_MACHINE\Software\JGsoft\DeployIT registry key and reading the value that carries the name of your application, as you have specified in the Project section. It is a string value indicating the filename the log was written to.

The log file is organized with a text file, with each piece of information placed on its own line. Lines are separated by CRLF.

The file begins with an arbitrary number of lines starting with a semicolon. These are comments that explain the purpose of the file to a curious user inspecting it with a text editor. These are the only comment lines allowed to appear in the file.

Then follows the log version number. DeployMaster 6.0.0 and later write log versions 3 and 4. DeployMaster 4.0.0 through 5.4.0 used versions 1 and 2. Older versions of DeployMaster only used version 1. If you encounter another number then the log was created by a more recent version of DeployMaster. In that case you cannot make any assumptions about the log’s contents. Consult the documentation of the most recent version for any changes in the format.

Version 1 and version 3 files are encoded using the computer’s default Ansi code page. These are only created by 32-bit installers targeting Windows 98 or ME (and possibly later versions of Windows). Version 2 and version 4 files are encoded using UTF-8, without a Unicode signature (byte order marker). These are created by 32-bit installers that do not target Windows 98 or ME and by 64-bit installers.

In version 3 and version 4 logs, the line after the version number indicates the type of installation. ALL means an installation for all users. ADMIN means an installation for the current user requiring admin rights. These two values make the uninstaller require admin rights. CURRENT means an installation for the current user without admin rights. This value allows uninstallation without admin rights.

Version 1 and version 2 logs do not have the line indicating the user type. DeployMaster 5.4.0 and prior could only install for all users. The remainder of the log is the same for all versions of the log.

The next line is the application’s title in the form of “companyname appname versionnumber”. Then follow year (4 digits), month and day of release, each on a separate line. This info is used to determine whether a newer, older or the same version is being installed when DeployMaster is run again. Companyname, appname and versionnumber are listed again, but each on a separate line this time. Except for appname, these may be blank (but they will always occupy a line).

The next six (versions 1 and 2) or seven (versions 3 and 4) lines contain text strings that are used by the uninstallation routine to display messages to the user. These strings can be changed on the Language page in the DeployMaster Builder.

After those six or seven lines, one line indicates the command that the uninstaller will execute before starting the uninstallation. This line may be blank.

Then DeployMaster stores the paths which the user could have changed in the Advanced Installation section of the installation program. The first line of this section indicates the number of available paths. For each path, three lines are then used: one line contains the path’s identifier (e.g.: %APPFOLDER%), the second line is the description of the path the user sees in Advanced Installation, and the last line is the actual path. If the last line is preceded by an asterisk (e.g.: *C:\Windows), the folder is considered a shared one. Files placed in shared folders have their reference counts updated in HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\SharedDLLs.

The next line is a number indicating how many components there are in the installed package. Each component takes up two lines following this number. The first line is the component’s caption, the second indicates the component’s status. If the status contains an S, the component was explicitly selected by the user or by the package’s default selection. If the status contains an R, the component was installed because it was required by another component that was installed too. Any other character in the status string should be ignored.

Then follows the list of files that were installed. Each file occupies one line and has its full path information. The list is terminated by three percentage signs (%%%) on a separate line.

Next are the created registry items. Dummy items (ones that were not created by the setup program but should be removed upon uninstallation) are listed too. Each value occupies a single line, starting with the full path of the registry key, then a tab character (0x09) and then the name of the value. The value itself is not saved to the log, even if it was not a dummy one. Again three percentage signs terminate the list.

File associations that were created or modified are also remembered. The first line is the file type extension, including the leading dot. Lines 2 and 3 are the old (the one present on the user’s system, if any, before DeployMaster modified it) and new descriptions of that file type. Lines 4 and 5 are the old and new DefaultIcon values for this file type, being an executable and an icon index, separated by a comma. Except for the extension, all these lines may be empty. The next line will either be a single percentage sign (%) or the name of an action registered for this file type. If it is an action name, the second line is the old and the third line the new associated command line that will be executed when the user selects this action. Again, the next line will be a single % or the name of the next action. Repeat until you read a %. After a file type was terminated by a single %, the next line will either be the extension for the next file type (in that case, repeat the above), or three percentage signs (%%%) terminating the file type list.

Any data following the last three percentage signs should be ignored, which DeployMaster does too.