Example of a Build Failure |
There are a few variations of what error messages could be displayed during a build, the following code shows one way to produce a error that Window Installer will report:
;<$Property "SOME" Value=""> ;;MAKEMSI validation will pick up dim EmptyVbVar : EmptyVbVar = "" ;;MAKEMSI doesn't know if empty or not <$Property "SOME" *Value="EmptyVbVar">
The above code will produce an error (the "Value" column is not allowed to contain a null string) similar to:
Section: MAKEMSI version ??.??? - PASS ? ... |
This shows that the failure was in the first pass of processing of the generated VBSCRIPT and not in the scripts generation.
Note that user errors are most likely to be the root cause of any failure. MAKEMSI doesn't try to catch every single error as the command is processed or it would take too long (even if possible), this can sometimes cause syntax errors in the generated VBSCRIPT or as is the case here a script runtime error.
Section: FATAL PASS ? ERROR |
This section holds the following information (any information may or may not be relevant to the problem):
If you report these errors and supply a script that generates these then I will look at adding extra validation to detect the problem in the build (or at least improve the message if required).
Section: VBS RETURNS |
This section holds any information about a VBS exception that may have occurred. It is generally not useful (thanks MS) but at times may help.
Section: MSI ERROR #???? - ... |
If any extended error information is available then this is displayed here. This information is generally very useful (it can however be cryptic). You can modify the messages to make them more meaningful to you (see the "Build Error Templates" section).
Section: Contents of the Problem Record ... |
If we appear to have failed while processing a record then its contents and some details are dumped. If this information exists it is very likely that the information displays extremely important information and clues as to the problems cause.
The dump lists:
Section: Fatal Error (in red) |
This section is the generic PPWIZARD error message, this information may or may not be useful.
Its information is extremely important where errors detected outside of the VBSCRIPT execution (where most errors occur in any case). Sometimes MAKEMSI will output other information prior to this section and in any case the complete MAKEMSI should be examined for clues.
Note that the "*.dbg.txt" contains all the output, and possibly much more (see the "DBG_ALL" macro).