|The "MsiExtraFiles" Command|
This command is used to associate files to the generated MSI, these are files which should be placed "beside" the MSI (available at install time).
An example where this command can be useful is where you want to nest an MSI and it may also need to have data files placed relative to it. While Windows Installer will display its own message it will be ugly, this command will display a much more user friendly message if the file is missing.
This command also adds to the reserved space on the first media, so for example if your product requires 2 or more CD-ROMs and you place a 100Meg file of the first CD-ROM then MAKEMSI will know that there is now 100 meg less space available and generate CAB files accordingly.
The macro takes these parameters:
If the file is unavailable at build time then you should use the "FILE" and "SIZE" parameters instead.
The default for this parameter can be set via the DEFAULT_MSIEXTRA_CHECK macro. This is initially "Y".
By default standard custom actions (see the "MSIEXTRA_IF_POSSIBLE_DONT_USE_SCRIPT_CUSTOM_ACTIONS" macro) are used to avoid the possibility of the end user getting a "Norton's Malicious Script Detection" message, if this won't be an issue you may wish to change to VBSCRIPT. At the moment the non-VBSCRIPT checking won't work unless the filename is 8.3 formatted and the "SourceDir" directory will be referenced.
The default for this parameter can be set via the DEFAULT_MSIEXTRA_DOCO macro. The initial value for this is "Y".
Note that currently an administrative install will not copy these files to the generated administrative image, you will need to copy them yourself.
|Main "MsiExtraFiles" Related Options|
Please see the "options for commands" section of the manual.
#define? DEFAULT_MSIEXTRA_CHECK Y ;;N=NO, Y=YES #define? MSIEXTRA_MSILOCATION <$MSI_MSILOCATION> ;;By default will copy to where MSI is... #define? MSIEXTRA_CHECK_WHEN_CONDITION <$CONDITION_INSTALL_ONLY> ;;Only want the validation during install... #define? MSIEXTRA_VALIDATE_AFTER CostFinalize ;;Must insert "ResolveSource" action if validate occurs during repairs etc! #define? MSIEXTRA_ALLOW_FILE_SIZE_PARMS Y ;;"N" = Don't allow missing files to be specified by filename and size #define? DEFAULT_MSIEXTRA_DOCO Y ;;"N" = Don't add to doco (by default) #define? MSIEXTRA_FILE_DETAILS_HOOK ;;Macro can contain Rexx code to store or process file info #if ['<$SUNDRY_IF_POSSIBLE_DONT_USE_SCRIPT_CUSTOM_ACTIONS>' = 'Y'] #define? MSIEXTRA_USE_CUSTOM_ACTIONS N ;;By default don't use VBSCRIPT CA #elseif #define? MSIEXTRA_USE_CUSTOM_ACTIONS Y ;;By default use VBSCRIPT CA #endif ;--- These options only used when VBSCRIPT is NOT being used ---------------- #( #define? MSIEXTRA_ERRORMSG_SUFFIX <$CRLF><$CRLF> -\ A file required by the MSI was not located. This could indicate corrupt media.<$CRLF><$CRLF> -\ [ProductName] version [ProductVersion] is being installed from the "[SourceDir]" directory.<$CRLF><$CRLF> #) ;--- Options only used when VBSCRIPT is being used -------------------------- #define? MSIEXTRA_CHECK_SEQUENCE LaunchConditions- ;;Sequence number for non-deferred CA within "InstallUISequence" & "InstallExecuteSequence" tables
<$Table "_Storages" CREATE="N"> <$Row Name="SomeMsi" Data="SomeMsiWeWillPerformNestedInstallOn.msi" @Validate="NEW -MISSINGDATA"> <$/Table> <$MsiExtraFiles "Data1.cab">