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]: MAKEMSI Merge Modules[Next]: Samples Installed by MAKEMSI
Have your say! Join the MAKEMSI discussion list or view archive! Suggest improvements. No question too simple or too complex.
\->MAKEMSI Installs...->Available Frameworks->Windows Hot Fixes

Windows Hot Fixes ("HOTFIX.MMH")

This makes creating MSI files for windows hot fixes (based on "http://support.microsoft.com/kb/262841" or similar) a trivial process of configuration, there are many options see "HOTFIX.MMH" for details.

Please see the example "TryMeWindowsHotFix.MM" for a demonstration of how it could be done. This sample gets the script down to 2 lines, no need for a version file and all you need to do is add your downloaded hotfix EXE.

The basic steps are:

  1. Download the Hotfix into a directory named for that hotfix, for example download "Windows2000KB12345x86ENU.EXE" into a subdirectory called "KB12345". This directory name must match the "HotFixId" property returned by the WMI object "Win32_QuickFixEngineering" which is used to validate the hotfixes successful install.

    I also recommend that you organise this according to what its (minimum?) target environment is, for examples you might put the "KB12345" directory under a tree called "WindowsHotFixes\WIN2000\SP4".

  2. Put your script ("HotFix.MM", "KB12345.MM" or whatever you called it) into this directory. See "TryMeWindowsHotFix.MM" for one example of a script. It will work out what the hotfix is called from the parent directories name. This script can potentially be identical for all hot fix MSIs.

  3. The script will need to include "HotFix.MMH" but you should not to do so directly. You may want to alter the options for "groups" of hotfixs, for example you may be creating hotfixes for WIN2000 and WINXP and possibly even for different service pack levels within that, I'd recommend creation of option files such as "HotFix4Win2000.MMH" which set up launch conditions etc for that situation, and these be used by your ".MM" script which only has the required "#include" command.

  4. Check the switches used are all valid for the version of the hotfix installer EXE, for example "/LOG" only available in version 6.1.22.0+. THe framework tries to work out the correct switches by examining the EXE but if you are having problems check it!

  5. Copy a ".ver" file from another hotfix directory and change at least the "UpgradeCode" and version history. Not that the "TryMeWindowsHotFix.MM" shows how to eliminate this step (a common ".ver" file is used).

  6. I suggest you download "QFECHECK.EXE" from microsoft, install it and copy the installed "QFECHECK.EXE" file out of the system directory. By default if MAKEMSI finds it it will execute it and log the output, this should make diagnosis of problems a lot easier.

  7. Build the MSI and test its install and uninstall. I suggest using virtual machines for this.

    If the "/LOG" switch wasn't or couldn't be used then look for a log files in the Windows (%Windir%) directory, sort but date/time or look for:

  8. You may need to vary command line options to package older or possibly even newer hotfixes, the switches being used are valid for version "6.1.22.0" of the updater, for more details see "http://support.microsoft.com/kb/262841" for more details.

If you have any problems be sure to read:


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]: MAKEMSI Merge Modules[Next]: Samples Installed by MAKEMSI


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.