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]: MSIEXEC.EXE - Silent Mode Displays Dialog on Command Line Error and Wrong Return Code[Next]: Message() Method of the Session Object Hangs on Long Messages
Have your say! Join the MAKEMSI discussion list or view archive! Suggest improvements. No question too simple or too complex.
\->Troubleshooting->Bugs, Features and Issues (NON-MAKEMSI)->MAKECAB.EXE Issues

BUG: MAKECAB.EXE Issues

The MS "MakeCab.EXE" tool has multiple bugs (basically a piece of crap).

Some known bugs:

  1. It cab produce cabs which exceed well understood limitations (as documented by Microsostft's Windows Installer team):

  2. Unless you use the "/date" and "/time" options in the DDF file, MAKEMCAB may (under unknown conditions) use the wrong date and/or time on the compressed file! My workaround is to always tell it which dates/times to use.

  3. If MAKECAB reports an error the real line number will probably be one greater than that reported.

  4. A file in use (such as an Excel spreadsheet) can not be compressed and MAKECAB.EXE will simply report that the file could not be opened (no explanation). See the "Files In Use - ADD" section for an example which works around files on a share which may be in use by others.

  5. There is a line limit on all lines in the ".DDF" file, I'm not sure what the limit is but it includes all lines (yes even comments).

    For this reason MAKEMSI uses "short" filenames and tries to use relative paths (to the current directory) where possible to specify the files as this will greatly reduce the chance of a line being too long for "MAKECAB" to handle.

    If it fails due to a line being too long it will report "ERROR:" in "Pass 1" (another bug - message missing).

    You can further reduce the line length by changing the source directory to a shorter one or using a shorter file row key. Another possibility is to use a "subst" command to map a drive letter to the source path.

  6. I can't remember the exact value but if a filename is longer than about 60 characters (no I'm not joking) the tool carks it. Workaround is to convert the whole filename to 8.3 format and then convert to a relative filename where possible.

  7. You can't specify the full directory name for the cab files destination, the path must be relative, otherwise you will get a cryptic error as shown here:

    Of course the error message itself is a separate bug as there is no invalid parameter.

  8. Be sure to have a look at the "Cabinet File Size Limitations" section.


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]: MSIEXEC.EXE - Silent Mode Displays Dialog on Command Line Error and Wrong Return Code[Next]: Message() Method of the Session Object Hangs on Long Messages


MAKEMSI© is (C)opyright Dennis Bareis 2003-2008 (All rights reserved).
Saturday May 28 2022 at 3:11pm
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.