|
![]() |
| 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.4 $
; $Date: 06 Aug 2017 08:29:24 $
; $Logfile: D:/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 17.216
;--- Some helper macros -----------------------------------------------------
#ifndef FLT_HELPER_MACROS_DEFINED
;--- Don't do this twice --------------------------------------------
#define FLT_HELPER_MACROS_DEFINED
;--- Define helpers -------------------------------------------------
#( ''
#define FilterNoLongerSupportsTheMacroMacro
#ifdef {$#1}
#error ^The "{$#1}" ("FILTER_") macro is no longer supported you will need to modify the macro and the equivalent new macro starts with "FILTER_HOOK_" and uses the "MsiValFilter" command.^
#endif
#)
#define REASON_YONKS Incorrect in that it works (for 15+ years)
#endif
;----------------------------------------------------------------------------
;--- Ignore "internal errors" -----------------------------------------------
;----------------------------------------------------------------------------
#ifndef FILTER_SEE_ICE_INTERNAL_ERRORS
#define+ REASON1 KNOWN MICROSOFT BUG:
#define+ REASON_MACRO_NOT_DEFINED and "FILTER_SEE_ICE_INTERNAL_ERRORS" was not defined
;/-UNKNOWN ICE Internal Error/
<$MsiValFilter "UNKNOWN ICE Internal Error" Comment=^<$REASON1> The validation itself failed <$REASON_MACRO_NOT_DEFINED>^>
;/-Based on the tables and columns in your database, it should be marked with a schema between/
<$MsiValFilter "Based on the tables and columns in your database, it should be marked with a schema between" Comment=^<$REASON1> Simply incorrect <$REASON_MACRO_NOT_DEFINED>^>
#endif
;----------------------------------------------------------------------------
;--- "darice.cub" specific (over W2K validations - "logo.cub") --------------
;----------------------------------------------------------------------------
#define+ REASON1 KNOWN MICROSOFT BUG IN "darice.cub":
;/-has a directory that is a public property (ALL CAPS) and is under user profile directory./
<$MsiValFilter "has a directory that is a public property (ALL CAPS) and is under user profile directory." Comment=^<$REASON1> Simply incorrect^>
;/-Property `AdminUser` found in column `ControlCondition`.`Condition`/
<$MsiValFilter "Property `AdminUser` found in column `ControlCondition`.`Condition`" Comment=^<$REASON1> Simply incorrect^>
;/-Property `AdminUser` found in column `ControlEvent`.`Condition`/
<$MsiValFilter "Property `AdminUser` found in column `ControlEvent`.`Condition`" Comment=^<$REASON1> Simply incorrect^>
#define REASON2 <$REASON_YONKS> in the context of how MAKEMSI performs major upgrades
;/-This product should remove only older versions of itself. No Maximum version was detected for the current product./
<$MsiValFilter "This product should remove only older versions of itself. No Maximum version was detected for the current product." Comment=^<$REASON1> <$REASON2>^>
;/-Upgrade.VersionMin and Upgrade.VersionMax cannot both be null. UpgradeCode is /
<$MsiValFilter "Upgrade.VersionMin and Upgrade.VersionMax cannot both be null. UpgradeCode is " Comment=^<$REASON1> <$REASON2>^>
;/-Complete functionality of the MsiFileHash table is only available with Windows Installer version 1.5. Your schema is/
<$MsiValFilter "Complete functionality of the MsiFileHash table is only available with Windows Installer version 1.5. Your schema is" Comment=^<$REASON_YONKS>^>
;----------------------------------------------------------------------------
;--- We are just about to pass through ALL ERRORS ---------------------------
;----------------------------------------------------------------------------
<$FilterNoLongerSupportsTheMacroMacro "FILTER_BEFORE_ERROR_FILTER">
#ifdef FILTER_HOOK_BEFORE_ERROR_FILTER
;--- User filter hook ----------------------------------------------------
<$FILTER_HOOK_BEFORE_ERROR_FILTER>
#endif
;----------------------------------------------------------------------------
;--- Pass through ALL ERRORS ------------------------------------------------
;----------------------------------------------------------------------------
;/+ ERROR /
<$MsiValFilter " ERROR " Comment=^All messages containing " ERROR " and not previously filtered out are treated as errors.^ TYPE="+">
;----------------------------------------------------------------------------
;--- We just passed through ALL ERRORS --------------------------------------
;----------------------------------------------------------------------------
<$FilterNoLongerSupportsTheMacroMacro "FILTER_AFTER_ERROR_FILTER">
#ifdef FILTER_HOOK_AFTER_ERROR_FILTER
;--- User filter hook ----------------------------------------------------
<$FILTER_HOOK_AFTER_ERROR_FILTER>
#endif
;----------------------------------------------------------------------------
;--- Remove line added by the find.exe filter -------------------------------
;----------------------------------------------------------------------------
;/----------/
<$MsiValFilter "---------" Comment=^This line exists because of MAKEMSI filter processing (via FIND.EXE)^>
;----------------------------------------------------------------------------
;--- Remove blank lines -----------------------------------------------------
;----------------------------------------------------------------------------
;/-/
<$MsiValFilter "" Comment=^Blank lines are ignored^>
;----------------------------------------------------------------------------
;--- Ignore any hard coding of directory locations via property table -------
;----------------------------------------------------------------------------
#ifndef FILTER_NO_WARNING_FOR_HARDCODED_DIRECTORY_ENTRIES
;/- appears to be hardcoded in the property table to a local drive/
<$MsiValFilter " appears to be hardcoded in the property table to a local drive" Comment=^ANZ frequently forces hardcoding via it's standards such as "D:" being a server data drive and "FILTER_NO_WARNING_FOR_HARDCODED_DIRECTORY_ENTRIES" was not defined^>
#endif
;----------------------------------------------------------------------------
;--- We don't care about "REINSTALLMODE" being in the property table --------
;----------------------------------------------------------------------------
#ifndef FILTER_WANT_WARNING_FOR_RESINSTALLMODE_IN_PROP_TABLE
;/-REINSTALLMODE is defined in the Property table./
<$MsiValFilter "REINSTALLMODE is defined in the Property table" Comment=^MAKEMSI is performing major updates so this message doesn't matter and "FILTER_WANT_WARNING_FOR_RESINSTALLMODE_IN_PROP_TABLE" was not defined^>
#endif
;----------------------------------------------------------------------------
;--- Ignore ASSOCIATION type warnings ---------------------------------------
;----------------------------------------------------------------------------
#ifndef FILTER_NO_WARNING_FOR_SHOULD_BE_REGISTERED_VIA_PROGID
#define+ REASON1 MAKEMSI registers associations via registry and "FILTER_NO_WARNING_FOR_SHOULD_BE_REGISTERED_VIA_PROGID" was not defined.
;/- Icon associations should be registered via the ProgId and Icon tables/
<$MsiValFilter " Icon associations should be registered via the ProgId and Icon tables" Comment=^<$REASON1>^>
;/- Shell extension verbs info should be registered via the Verb table./
<$MsiValFilter " Shell extension verbs info should be registered via the Verb table." Comment=^<$REASON1>^>
;/- should be registered via the ProgId table/
<$MsiValFilter " should be registered via the ProgId table" Comment=^<$REASON1>^>
;/-ProgId - CLSID associations should be registered via the ProgId and Class tables/
<$MsiValFilter "ProgId - CLSID associations should be registered via the ProgId and Class tables" Comment=^<$REASON1>^>
#endif
#ifndef FILTER_NO_WARNING_FOR_SHOULD_BE_REGISTERED_VIA_EXTENSION
#define+ REASON1 MAKEMSI registers associations via registry and "FILTER_NO_WARNING_FOR_SHOULD_BE_REGISTERED_VIA_EXTENSION" was not defined.
;/- should be registered via the Extension table/
<$MsiValFilter " should be registered via the Extension table" Comment=^<$REASON1>^>
#endif
;--- All other warnings to go through ---------------------------------------
<$FilterNoLongerSupportsTheMacroMacro "FILTER_BEFORE_WARNING_FILTER_ALL">
#ifdef FILTER_HOOK_BEFORE_WARNING_FILTER_ALL
;--- User filter hook ----------------------------------------------------
<$FILTER_HOOK_BEFORE_WARNING_FILTER_ALL>
#endif
;--- We treat All OTHER WARNING as errors -----------------------------------
;/+ WARNING/
<$MsiValFilter " WARNING" Comment=^All messages containing " WARNING" and not previously filtered out are treated as errors.^ TYPE="+">
<$FilterNoLongerSupportsTheMacroMacro "FILTER_AFTER_WARNING_FILTER_ALL">
#ifdef FILTER_HOOK_AFTER_WARNING_FILTER_ALL
;--- User filter hook ----------------------------------------------------
<$FILTER_HOOK_AFTER_WARNING_FILTER_ALL>
#endif
;--- Probably should never get here... Pass anything else through -----------
;/+*/
<$MsiValFilter "*" Comment=^Don't really expect to get this far but anything not already filtered is treated as an error^ TYPE="+">
![]() | ![]() |