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]: MSI Validation[Next]: ICE Messages and their Resolution
Have your say! Join the MAKEMSI discussion list or view archive! Suggest improvements. No question too simple or too complex.
\->Building or Updating MSIs->Validations->MSI Validation->MAKEMSI.FLT

MAKEMSI.FLT

The "makemsi.flt" file is used by MAKEMSI during MSI validation processing.

I recommend that it not be modified, if you examine its contents (below) you will see that if you have a "BuildMSI.MM" script then the contents of a file called "BuildMSI.FLT" will be included if it exists.

The "MsiValFilter" command provides an another alternative method for specifying filter lines.

As the "main" filter is identified by the "VALID_FILTER_FILE" macro if you wished to make a global change then copy this filter file to another location, give it a reasonable filename so its obvious what it is and then configure MAKEMSI to use this via the macro.

The following shows the files contents:

;----------------------------------------------------------------------------
;
;    MODULE NAME:   MAKEMSI.FLT
;
;        $Author:   USER "Dennis"  $
;      $Revision:   1.3  $
;          $Date:   07 May 2005 09:10:06  $
;       $Logfile:   C:/DBAREIS/Projects.PVCS/Win32/MakeMsi/MakeMsi.flt.pvcs  $
;----------------------------------------------------------------------------

;----------------------------------------------------------------------------
;--- Only Allow this to be included once ------------------------------------
;----------------------------------------------------------------------------
#ifdef MAKEMSI_FLT_VERSION
   ;--- Some how including it twice! ----------------------------------------
   #eof 1
#endif
#define MAKEMSI_FLT_VERSION 03.073


;----------------------------------------------------------------------------
;--- Process any user defined Filter ----------------------------------------
;----------------------------------------------------------------------------
#DefineRexx ''
   ;--- Get the name of any user filter -------------------------------------
   @@Look4   = '<?InputFile $$FilePart:w>.flt'
   @@UserFlt = FileQueryExists(@@Look4)

   ;--- For MAKEMSI only, a danger, we can include ourselves! ---------------
   if  translate(@@UserFlt) <> translate('<?InputComponent>') then
       @@UserFlt = '';
#DefineRexx
<?SemiColon>###
<?SemiColon>### START USER FILTER: "<??@@Look4>" #####################
<?SemiColon>###
#if [@@UserFlt <> ""]
   ;--- Include the users requirements --------------------------------------
   #if translate(@@UserFlt) <> translate(@@Look4)
       <?SemiColon>--- FULLNAME: "<??@@UserFlt>" ---
   #endif
   #include "<??@@UserFlt>"

   ;--- Display the user filter in the generated report ---------------------
   <$SourceForReport "<??@@UserFlt>">
#elseif
   <?Space>   <?SemiColon>--- No filter found ---
#endif
<?SemiColon>###
<?SemiColon>### END   USER FILTER: "<??@@Look4>" #####################<?NewLine>
<?SemiColon>###
<?NewLine>
<?NewLine>


;----------------------------------------------------------------------------
;--- HOOK before any other processing ---------------------------------------
;----------------------------------------------------------------------------
#ifdef FILTER_START
   ;--- User Hook -----------------------------------------------------------
   <?NewLine>
   <?SemiColon>--- HOOK: "FILTER_START" ---
   <$FILTER_START>        ;;#EOF if user filter did everything...
   <?NewLine>
#endif


;----------------------------------------------------------------------------
;--- Ignore "internal errors" -----------------------------------------------
;----------------------------------------------------------------------------
#ifndef FILTER_SEE_ICE_INTERNAL_ERRORS
   <?NewLine>
   /-UNKNOWN   ICE Internal Error/
   /-Based on the tables and columns in your database, it should be marked with a schema between/
   <?NewLine>
   <?NewLine>
#endif


;----------------------------------------------------------------------------
;--- "darice.cub" specific (over W2K validations - "logo.cub") --------------
;----------------------------------------------------------------------------
<?NewLine>
<?NewLine>
/-has a directory that is a public property (ALL CAPS) and is under user profile directory./
/-Property `AdminUser` found in column `ControlCondition`.`Condition`/
/-Property `AdminUser` found in column `ControlEvent`.`Condition`/
/-This product should remove only older versions of itself. No Maximum version was detected for the current product./
/-Upgrade.VersionMin and Upgrade.VersionMax cannot both be null. UpgradeCode is /
;**    [CommentBlockStart     (January 18, 2005 6:14:45 PM EST, Dennis)
;**+----------------------------------------------------------------------
;**|/-WARNING   Mismatched component reference./
;**+----------------------------------------------------------------------
;**    CommentBlockEnd]       (January 18, 2005 6:14:45 PM EST, Dennis)
/-Complete functionality of the MsiFileHash table is only available with Windows Installer version 1.5. Your schema is/


;----------------------------------------------------------------------------
;--- We are just about to pass through ALL ERRORS ---------------------------
;----------------------------------------------------------------------------
<?NewLine>
<?NewLine>
#ifdef FILTER_BEFORE_ERROR_FILTER
   ;--- User filter hook ----------------------------------------------------
   <?NewLine>
   <?SemiColon>--- HOOK: "FILTER_BEFORE_ERROR_FILTER" ---
   <$FILTER_BEFORE_ERROR_FILTER>
#endif

;----------------------------------------------------------------------------
;--- Pass through ALL ERRORS ------------------------------------------------
;----------------------------------------------------------------------------
<?NewLine>
<?NewLine>
/+ ERROR /


;----------------------------------------------------------------------------
;--- We just passed through ALL ERRORS --------------------------------------
;----------------------------------------------------------------------------
#ifdef FILTER_AFTER_ERROR_FILTER
   ;--- User filter hook ----------------------------------------------------
   <?NewLine>
   <?SemiColon>--- HOOK: "FILTER_AFTER_ERROR_FILTER" ---
   <$FILTER_AFTER_ERROR_FILTER>
   <?NewLine>
#endif


;----------------------------------------------------------------------------
;--- Remove line added by the find.exe filter -------------------------------
;----------------------------------------------------------------------------
/----------/


;----------------------------------------------------------------------------
;--- Remove blank lines -----------------------------------------------------
;----------------------------------------------------------------------------
/-/


;----------------------------------------------------------------------------
;--- Ignore any hard coding of directory locations via property table -------
;----------------------------------------------------------------------------
#ifndef FILTER_NO_WARNING_FOR_HARDCODED_DIRECTORY_ENTRIES
   <?NewLine>
   /- appears to be hardcoded in the property table to a local drive/
#endif


;----------------------------------------------------------------------------
;--- We don't care about "REINSTALLMODE" being in the property table --------
;----------------------------------------------------------------------------
#ifndef FILTER_WANT_WARNING_FOR_RESINSTALLMODE_IN_PROP_TABLE
   <?NewLine>
   /-REINSTALLMODE is defined in the Property table./
#endif

;----------------------------------------------------------------------------
;--- Ignore ASSOCIATION type warnings ---------------------------------------
;----------------------------------------------------------------------------
#ifndef FILTER_NO_WARNING_FOR_SHOULD_BE_REGISTERED_VIA_PROGID
   <?NewLine>
   /- Icon associations should be registered via the ProgId and Icon tables/
   /- Shell extension verbs info should be registered via the Verb table./
   /- should be registered via the ProgId table/
   /-ProgId - CLSID associations should be registered via the ProgId and Class tables/
#endif
#ifndef FILTER_NO_WARNING_FOR_SHOULD_BE_REGISTERED_VIA_EXTENSION
   <?NewLine>
   /- should be registered via the Extension table/
#endif

;--- All other warnings to go through ---------------------------------------
#ifdef FILTER_BEFORE_WARNING_FILTER_ALL
   ;--- User filter hook ----------------------------------------------------
   <?NewLine>
   <?SemiColon>--- HOOK: "FILTER_BEFORE_WARNING_FILTER_ALL" ---
   <$FILTER_BEFORE_WARNING_FILTER_ALL>
#endif
/+ WARNING/
#ifdef FILTER_AFTER_WARNING_FILTER_ALL
   ;--- User filter hook ----------------------------------------------------
   <?NewLine>
   <?SemiColon>--- HOOK: "FILTER_AFTER_WARNING_FILTER_ALL" ---
   <$FILTER_AFTER_WARNING_FILTER_ALL>
#endif


;--- Probably should never get here... Pass anything else through -----------
<?NewLine>
/+*/


Microsoft awarded me an MVP (Most Valuable Professional award) in 2004, 2005, 2006 & 2007 for the Windows SDK (Windows Installer) area.This external link was OK when tested at 15 Nov 2008Please email me any feedback, additional information or corrections.
See this page online (look for updates)

[Top][Contents][Prev]: MSI Validation[Next]: ICE Messages and their Resolution


MAKEMSI© is (C)opyright Dennis Bareis 2003-2008 (All rights reserved).
Saturday November 15 2008 at 2:05pm
Visit MAKEMSI's Home PageThis external link was OK when tested at 7 Nov 2008

HTML page dated Mon, 29 Jan 2007 00:11:11 GMT
Microsoft awarded me an MVP (Most Valuable Professional award) in 2004, 2005, 2006 & 2007 for the Windows SDK (Windows Installer) area.This external link was OK when tested at 15 Nov 2008