The CHANGE HISTORY Part of an MSI Version File |
The version information follows the product part of a version file (click for example).
It is one or more records organised from the latest to the oldest (reverse order) so the first record found describes the current "change" and the version number is used as the version number of the MSI being built. The minimal change for a new release of your product will be to insert a new entry at the top.
Each record consists of a keyword followed by data (separated by a ":"). A line that begins with a ":" is a continuation of the previous line.
Each record must supply each of the following keywords are:
An invalid format will be reported by the ICE24 validation.
Note that it appears that the limit of 255 for major and minor version numbers may be by "convention" rather than technical (but I have not tested this apart from a simple install).
The VERSION Number Macros |
Note that the first version number in the change history is used to build the following macros:
Main VERSION (HISTORY) Options |
Please see the "options for commands" section of the manual.
#define? VER_CH_EQUAL_CHARS : #define? VER_HISTORY_FIELD_VERSION "{*,Version,REQUIRED,NONBLANK}?" #define? VER_HISTORY_FIELD_CHANGES "{*,Changes,REQUIRED,NONBLANK}?" #define? VER_HISTORY_FIELD_DATE "{*,Date,REQUIRED,NONBLANK}?" #define? VER_HISTORY_FIELDNUM_VERSION 1 #define? VER_HISTORY_FIELDNUM_CHANGES 2 #define? VER_HISTORY_FIELDNUM_DATE 3 #define? VER_HISTORY_FIELDNUM_FIRST_EXTRA 4 ;;Standard only has 3 fields #define? VER_THIS_RELEASE_VERSION <?Data:@@ChangeHistory.1.RxVER_HISTORY_FIELDNUM_VERSION> ;;First item is "current" release #define? VER_THIS_RELEASE_CHANGE <?Data:@@ChangeHistory.1.RxVER_HISTORY_FIELDNUM_CHANGES> ;;First item is "current" release #define? VER_CH_IMPORT_FIELDS_EXTRAS #( #define? VER_CH_IMPORT_FIELDS ;--- See #import (ML) command for details about how to describe fields --- <$VER_HISTORY_FIELD_VERSION> ;;Field #1 <$VER_HISTORY_FIELD_CHANGES> ;;Field #2 <$VER_HISTORY_FIELD_DATE> ;;Field #3 <$VER_CH_IMPORT_FIELDS_EXTRAS $$SpcPlus> ;;Possible user defined extras #)
The above options are meaningless if you have completely replaced the default handling, for example as demonstrated by the "XML Version File" example.