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]: Troubleshooting[Next]: Example of a Build Failure
Have your say! Join the MAKEMSI discussion list or view archive! Suggest improvements. No question too simple or too complex.
\->Troubleshooting->Build Time Problems

Build Time Problems

Some tips:

  1. Have a read of the "Build Steps" section of the documentation.

    I try to do a reasonable amount of validation of parameters when a command is processed but some errors may be only detected later when the generated VBSCRIPT is executed (please have a look at the "example of a build failure" section). In general a VBSCRIPT failure is a probably caused by input you provided (if not send me your script and the generated code and I'll fix the problem - or tell you what you did wrong).

  2. Read my doco!
    Read it again. If the problem is with a specific command or feature then re-read its documentation (slowly and carefully - follow hypertext links). If a command pay particular attention to any prerequisites and default parameters. A large percentage of the queries I get have already been documented by me (even down to the exact error message). I do get grumpy when this happens. The compiled help has a good search facility - use it. If the documentation is not clear and you can tell me how to improve it then tell me! I am always improving the documentation so check the online version. Be sure to also check out the "bugs" section.

  3. Check my Error Codes Section
    If you have an error message of return or error code then you should check the "Error Codes" section of this manual.

  4. Check MAKEMSI output for WARNINGS
    If you get and "WARNING XXXX: type messages possibly due to redefining some values etc, don't ignore them, you should eliminate these first just to be sure...

  5. Check a command's parameters and documentation!
    If you have never read the "command parameters" section of the documentation then do so now! Many commands have optional parameters but that doesn't mean they mightn't need to be supplied in some circumstances (its just that they are not always required). Sometimes you need to supply one of a number of optional parameters. If you are having problems with a specific command then re-read its documentation and examine any samples that MAKEMSI installs or documents.

  6. Build Logs and Other Files
    I have put a lot of work into both the error messages and the files that I build (and their location) in an attempt to make diagnosing any issue much easier.

    When I build a script such as "TESTMSI.MM" the "out" directory will contain "TESTMSI.dbg.txt". This file will show you everything you saw on the screen (except under WIN9X) plus more, depending on debug options (see "DBG_ALL") configuration, you could even be able to see most of the Windows Installer table and row manipulation, which is handy for determining how a particular value could have got into a particular place (you could also see the generated VBSCRIPT for this)!

    The "OUT\TESTMSI.MM\LOG" directory tree has lots of files and information which could easily help.

  7. Code Page Issues
    If your problem is that MAKEMSI is not "seeing" some files then you should have a look at the "MAKEMSI_MM_CODEPAGE" environment variable to see if you need to set it.

  8. Unexplained Intermittent Problems (strange write and delete errors)
    These can quite easily be caused by programs such as virus checkers or anti-spyware tools (typically during a scheduled scan). The "X1.EXE" (Yahoo Desktop Search) tool is a great search program but its indexing really sucks, the fact that they fixed the same bug when I reported it in their previous search tool is particularly annoying. I normally terminate "x1" when building.

    The problem is that they can be opening the file while MAKEMSI or other programs are trying to create, write to, or delete the file. Unfortunately operating systems don't have inbuilt mechanisms to allow programs such as these to do their job.

  9. Double Check Validation and Filtering
    It would be wise to have a closer look at any MSI validation messages you have been ignoring or if there were none have a look at the unfiltered output (which is kept). See if a message is listed in the "ICE Messages" section! If unsure I recommend looking in Microsoft's MSI forum for information on the specific message. It also might be a good idea to do a sanity check using "ORCA" to manually perform the validation (just in case).

  10. Norton's Malicious Script Detection
    The "Norton's Malicious Script Detection" message might be seen while building an MSI and might also be seen if you are installing an MSI that makes use of the "JsCa" or "VbsCa" commands.

  11. Silent Termination by AntiVirus or AntiSpyware Garbage
    Its possible that the creation or updating of an MSI might fail in "strange" ways. Its worth testing for AntiVirus or AntiSpyware issues.

  12. MAKECAB.EXE - Diagnosis
    If the compile step fails (or works) the "Cabinet" log directory will contain a batch file which you can invoke to test things out without having to do a possibly lengthy rebuild. MAKEMSI doesn't actually use this batch file but has created it purely as a testing or problem diagnosis tool.

  13. MAKECAB.EXE - "Cannot open File" Message
    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.

  14. Check any Tweeks
    If you tweek the way MAKEMSI works and have just upgraded, does the tweek still work?

  15. Script Files must be ANSI
    PPWIZARD (and therefore MAKEMSI) does not support the use of non-ANSI formatted script or version files. For example if the ".MM" file is in "unicode" then the make will "complete" (almost immediately) without building the MSI. If the ".MM" was OK but the ".ver" file is non-ANSI then you will get an error message displaying a line which appears to have spaces between each letter. To correct use notepad or whatever text editor you are using to resave the file as "ANSI".

    Note that this is only the script related files we are talking about, not files you may wish to add to the MSI (these can be any format)!

  16. The "-IgnoreMeUnlessNotEmpty-.txt" file should be empty
    If you are not getting the expected result its possible that you have made a mistake which causes commands to get generated in this file. What goes in will usually give you an idea as to the source of an error. This file may contain spaces and/or blank lines but should not contain anything else, if it does you probably haven't nested some command properly or perhaps mixing unix and Windows end of line characters.

  17. Lots Of, Huge or a Complex MSI
    If you have large numbers of something or the size of some of your resources is big then you should check out the Install Site's "What are the limits for a large MSI package?" page.

  18. Merge Module Related Problems
    There are few merge modules which either cause merge errors in pass 1 or cause validation errors or warnings (which may be safe to ignore). If unsure what you should do then I recommend looking in Microsoft's MSI forum for information on the specific merge module or the errors it generates.

    It is probably worth while checking the generated log files when trying to diagnose any issues.

  19. Directory Path too deep (name too long)?
    Different file systems have different restrictions, NTFS has file name limit of 255 characters. Have you exceeded one of these limitations? Try copying source to a simple directory off the root such as "C:\tmp".

    Its possible that some characters in the path/filename may be the issue, for example "[" used to cause problems and this would also be "fixed" by the above test. If you do find a problem character please let me know.

  20. If the problems are with the creation of cabinet files then see 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]: Troubleshooting[Next]: Example of a Build Failure


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.