MAKEMSI quickly and reliably creates MSI files in a non-programmatic way
Have your say! Join the MAKEMSI discussion list or view archive! Suggest improvements. No question too simple or too complex.
[Bottom][Contents][Prev]: Merge Succeeds But Heaps of Validation Errors Produced[Next]: Language Mis-match!
Have your say! Join the MAKEMSI discussion list or view archive! Suggest improvements. No question too simple or too complex.
\->Troubleshooting->Build Time Problems->Common Build Problems and Their Solutions->Common Merge Module Issues->Merge Fails with Error Message(s)

Merge Fails with Error Message(s)

Unlike the "merge succeeds but heaps of validation errors produced" issue the build actually fails to complete due to some fatal merge issue.

You can user the "IgnoreErrors" parameter of the "MergeModule" command to ignore most errors that are likely to prevent a merge. When a merge module is merged there are a number of different types of errors that can occur. A huge number of these can safely be ignored while some definately shouldn't be.

This parameter only affects those merge errors which immediately cause processing to abort, if processing completes up to the MSI validation step then you may wish to use the "MsiValFilter" command to filter out any messages you decide to ignore, others may be listed in the "ICE Messages" section.

With this option you can specify one or more space delimitered items which describe what can be safely ignored. Each item should be in one of the following formats (in most to least recommended order):

Entries provided which match merge errors are displayed in the HTML report. The merge log file also contains heaps of details including all merge issues (whether ignored or not).

The value from this parameter is added to that contained in the macro "MERGEMOD_IGNORE_ERRORS_ALWAYS". Clear this macro if you wish full control.

Example Error - SystemFolder

Incorrectly authored merge modules (for example most MS ones like "atl.msm"...) will cause merge errors similar to the following:

Merge Errors - Use the "IgnoreErrors" parameter to ignore any
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Type         : msmErrorTableMerge
Ignore It?   : NO
DataBaseTable: Directory
DataBase Keys: SystemFolder

This is because the "Directory" table entries have been incorrectly defined in the module, you can generally ignore these as is being done with the following merge command:

<$MergeModule "Merge Modules\atl.msm" IgnoreErrors="Directory:SystemFolder">

All keys added by a correctly authored merge module will use a GUID like key name to ensure uniqueness. The only valid exception to this is for "TARGETDIR" but Windows Installer complains about it also!

Example Error - msmErrorResequenceMerge

This type of error is always a bug in the failing merge module (the rules for adding custom actions were not followed in the indicated table):

Merge Errors - Use the "IgnoreErrors" parameter to ignore any
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Type         : msmErrorResequenceMerge <- Bug in merge module - invalid 'BaseAction'
Ignore It?   : NO
MergeModTable: ModuleInstallUISequence
MergeMod Keys: ValidateKeycode.6F2B3983_59B8_11D3_B360_00A0C9DA500E

This should not be ignored and the Module's vendor should be contacted.


Microsoft awarded me an MVP (Most Valuable Professional award) in 2004, 2005, 2006, 2007, 2008 & 2009 for the Windows SDK (Windows Installer) area.Please email me any feedback, additional information or corrections.
See this page online (look for updates)

[Top][Contents][Prev]: Merge Succeeds But Heaps of Validation Errors Produced[Next]: Language Mis-match!


MAKEMSI© is (C)opyright Dennis Bareis 2003-2008 (All rights reserved).
Saturday December 09 2017 at 9:30am
Visit MAKEMSI's Home Page
Microsoft awarded me an MVP (Most Valuable Professional award) in 2004, 2005, 2006, 2007, 2008 & 2009 for the Windows SDK (Windows Installer) area.