\
Introduction
Change History
Change History - Older Entries
Change History - Older Entries |
This page does not contain
the latest MAKEMSI change history entries.
It is meant as a bit of an archive in case you are upgrading from a really old
release or maybe you are just interested.
Just note that any change described here could easily have been superceeded
in a newer release.
- 12.206 (24 July 2012)
- 11.323 (19 November 2011)
- Improved the "RegistryImport" command so to fix
the existing line hook (which effectively couldn't be used) and
added a hook to manipulate a "STRING" values information to handle
"regasm" output etc.
- 11.249 (6 September 2011)
- Have modified "MM.CMD" so that it works
around the WINDOWS 7 (Vista also?) explorer command line bugs.
The "/root" parameter only used where Windows major version is "5".
- Made some non-functional changes to the "dialog" commands so
that the VBS marks the reason for its creation better
(if validating or transforming).
- Includes newer PPWIZARD (version 11.140).
- 11.087 (28 March 2011)
- The "DEFAULT_FILE_LANG_WHEN_GETLANGUAGE_FAILS" value was not being
applied since the "10.341" release.
- Made minor changes and added error checking to make it much less likely
that a line continuation (user) error would go undetected when creating
scripts (VbsCa).
- 11.078 (19 March 2011)
- Christoph Vogtlaender found a bug in the handling of double quotes
by the "DATA" parameter of the "VbsCaSetup"
command (quotes were being doubled up).
- Includes newer PPWIZARD (version 11.078).
- 10.341 (7 December 2010)
- As pointed out by Christoph Vogtlaender, all files were getting
the language "1033" (the configurable default).
Have adjusted "FileLanguage()" as suggested and testing proves
it works again.
- 10.241 (29 August 2010)
- The "PopupMessage()" sample code in "TryMeDllCustomAction.MM"
was leaking handles (as reported by "grizzlyyh"),
incorporated the fix provided.
- By default MAKEMSI now generates a warning when no final
validation occurs so that it is more obvious that this is not
a desirable state of affairs.
Override "VALID_MSIVAL2_COULDNT_VALIDATE_WARNING" to disable or alter.
- 10.169 (18 June 2010)
- The "DllCa-C" command was not detecting failures
in the batch file correctly, in general this would cause other
downstream issues and be detected anyway.
- Added "DLLCA_C_MINGW_INCLUDE_DIRECTIVES" to the
"DllCa-C" command's configuration.
- Fixed minor bug in "TryMeDllCustomAction.MM",
it didn't display the "INFO" message if not compressing result.
- If no files being compiled now delete "_MAKEMSI_FileSource"
if required to avoid "ICE03" messages.
- 10.087 (28 March 2010)
- The "10.067" release broke the "Dialog" command as
the "condition" parameter now needs to be specified.
- You could not specify "" for the "Integer" parameter of the
"DialogEntry" command as documented.
- Added "<??*ProgramFiles>\Microsoft SDKs\Windows\v7.0" to
the default list of locations searched for the SDK.
- If you specified a licence file in the
version file which had the same
name as the default it would generate a pointless warning.
- 10.067 (8 March 2010)
- The code for the FilesInUse dialog tip
was dodgy, I fixed this and improved it to show the number of
running instances of a program if more than 1.
It allows you to check the command line and uses regular expressions
for matching.
- Updated "FIREWALL.MMH".
- The "CONDITION" parameter used to default to "" but is now mandatory
for the commands
"AbortIf", "DllCa",
"ExeCa",
"JsCaSetup" and "VbsCaSetup".
It is unlikely anyone would want an empty condition and covers cases
where insufficient testing has been performed.
- 10.030 (30 January 2010)
- I think my v09.360 change to the "VbsCa" command
created the problem which could cause builds to fail (inline always).
- Improved the UnzipImage
sample to log more and display better error if "iunzip.exe" not found.
- 09.360 (26 December 2009)
- New "ControlName" parameter on the "DialogEntry"
command allows you to "name" controls if you need to refer to them
elsewhere.
- By default the "VbsCa" command will now use
"FileMake" to generate the binary script so that
the "binary" will no longer change for "insignificant" changes.
This makes it much easier to detect "real differences" between msi versions.
- I have now replaced the code that made use of
"DTREG.EXE" so it is no longer installed at all.
- 09.328 (24 November 2009)
- Added the ".NET Framework Installed?" validation/sample.
- The base url of all links in the generated html report that pointed
into the online MAKEMSI manual incorrectly started with
"http://dennisbareis.com/makemsi/" (causing a 404).
- If you used "MM.CMD" without parameters and
there was only one match whose filename contained spaces then the
build wouldn't work.
- I finally got sick of the false AV hits on
"DTREG.EXE"
(which is only used by experimental "SelfRegImport" command) so its
now zipped in a password protected archive to "hide it".
If you need it then unzip to install.
- 09.316 (12 November 2009)
- The "compile" command now supports
caching of "MakeCab.EXE" output.
- A type of "DWORD" on the "Registry"
command could fail with ICE70.
- Setting "UISAMPLE_DISABLE_TYPICAL_SETUP" to "A" would cause the
build to fail syntax error.
- 09.296 (23 October 2009)
- The default method used to persist properties during uninstall
in the "Property" command was changed to use
permanent (versus unregistered) components as this allows repair
of those values.
- The compile options can now be varied per
"compile" command.
- 09.284 (8 October 2009)
- Added the "64Bit" parameter to the "RegistryRead"
command.
- Added the "RAW" parameter to the "Registry"
command.
- Rather than warn you if you forget to supply "VALUE" on
the "MsiFormatted" parameter for
"MultiString" types, the code now automatically applies it.
- An "ICE70" during validation and a
1406 error during install
would be generated if you supplied a string starting
with "#" (which has special meaning to Windows Installer)
to the "Registry" command.
- As this is my new laptop running 64 bit Vista Ultimate, if
anything was to go wrong this is the release it will occur in but
I'm pretty confident. Let me know if that was wrong :-)
- 09.198 (17 July 2009)
- The "FileFind" command could fail with a
2228 error on the "Signature" table
when searching for a directory, I think this is because of
a change to Windows Installer (it now requires it).
- 09.155 (2 June 2009)
- Improved my solution to the "HTMLMSITABLE_MSIDIFF_NAME" issue as
the one in "09.153" required MSIDIFF to be installed
(or some reconfiguration) by default.
- 09.153 (2 June 2009)
- The "DllCa-C" command would fail if a long
(non 8.3) binary key was chosen
(for example "SimpleSlashRemoval.dll", "Simple.dll" worked).
- Updated the "VbsCa" &
"VbsCaSetup" commands to support type 38
custom actions (simple inline).
- Updated the "JsCa" &
"JsCaSetup" commands to support type 37
custom actions (simple inline).
- Removed the hardcoded path from the DEFAULT value for
"HTMLMSITABLE_MSIDIFF_NAME"
(minor fix for people not installing to "c:").
- Fixed the "VbscriptBasedService.MM" sample.
- Adjusted the attribute ("type" parameter etc)
handling of all custom actions.
- Minor enhancement to the "Schedule" command.
- 09.045 (14 February 2009)
- The "CONDITION_PER_USER" definition was faulty.
- 08.362 (27 December 2008)
- Fixed the "Integer" parameter of the "DialogEntry"
command to work with numbers greater than 32,767.
- 08.345 (10 December 2008)
- 08.320 (15 November 2008)
- 08.312 (7 November 2008)
- 08.298 (24 October 2008)
- 08.257 (13 September 2008)
- 08.241 (28 August 2008)
- The "Directory" command's "conditional" directory
creation support would create the code even if the key's case was
different (keys are case sensitive).
As this probably only occurred in the case of a user error this
change probably won't change the outcome but I have now documented
error "2756".
- Moved the definition of validation entries for
"MAKEMSI_TABLENAME_CABS" table to the "compile" processing.
- "VbsScriptTestingStub()" could logs some irrelevant "err" details.
- 08.232 (19 August 2008)
- The "MsiValFilter" "regular expression" tests
could cause validation filtering to fail on some workstations
(on any particular machine it would either consistently fail or work).
MAKEMSI should now also detect and warn about any filter failure.
Also added some more debugging features to the validation process.
- Many MAKEMSI commands make use of the "GetSeqNumber()"
routine which would display an error if the available space was exactly
equal to the requested number of sequence numbers.
- The "CustomAction" column "ExtendedType" is now created by default
allowing the new "PatchUninstall" custom action attribute to be used.
If you are operating on existing msi files you may need to
set the "TABLES_DEFINE.CustomAction.ExtendedType" macro to "N" if it
doesn't already contain the column.
- Minor change to "HookInto.MMH" to fix the bug (#ifdef "macro")
reported by Christoph Mockenhaupt (thanks).
Found similar issue in "MacroCfg.MMH".
- Christoph Mockenhaupt improved his "FireWall.MMH" code.
- 08.209 (27 July 2008)
- Updated "uisample.msi" from the latest Windows Installer 4.5 SDK
(previous template was from the 4.5 beta).
- Thanks to Christoph Mockenhaupt for the "FireWall.MMH" code
which adds to the MS Windows FireWall Exception list.
- Thanks to Lucas Marcel for pointing out the compare bug in
the "file version compare code".
- New "INSTALLER_SDK_DIR" configuration.
- Minor change to the logging of the "ProductValidation"
command (product names on progress dialog).
- 08.188 (6 July 2008)
- 08.177 (25 June 2008)
- The "CaDeleteFile()" code
would most likely fail unless you had defined "oFS" globally.
- It is now possible to configure the
"WrapInstall" command to wait for a period of
time for an async uninstall to complete
(for example an NSIS "uninstall.exe").
- New optional "CaSleep()" routine.
- The "UpgradeTable"
macro can now be told the "@validate" information for the rows
being added.
- 08.148 (27 May 2008)
- Some tools create an "ActionText" table
which only allows
for short descriptions
("L64" for the "Description" column in my testcase).
The "ProductValidation" command would fail in
this situation, the text is now configurable with the default
probably short enough for all cases.
- The "TableDelete" command can now delete
tables that haven't been predefined.
- 08.123 (2 May 2008)
- A new "AccessApply" command.
- Minor change to the "Access" command.
- The second "EntryCheck" in the VBS created with the
"VbsCa" command should have been "ExitCheck".
- 08.096 (5 April 2008)
- 08.066 (6 March 2008)
- Fixed the "[Date] [Time]" string that the
"WrapInstall" command places into the
"MakeMsiWrapInstall" registry.
- 08.023 (23 January 2008)
- 07.341 (7 December 2007)
- The "Registry" command now has a new type of
"MultiString" to provide improved support for "REG_MULTI_SZ"
(null delimitered) strings.
- 07.337 (3 December 2007)
- The "UninstallRc0" parameter of the "WrapInstall"
command was being ignored when "UninstallExe" not supplied.
- No longer fails if the "UninstallArgs" parameter of the
"WrapInstall" command contains double quotes.
- The "TABLES_LNG_FILE_COLUMN" macro wasn't being applied to
the definition of foreign keys into the file table
(I think I found them all).
- 07.325 (21 November 2007)
- Can now validate the macro being restored by the
"/MacroCfg" command.
- Now set "FILE_GENERATED_COMPONENT_MAX_LENGTH" to maximum as I now
follow any specified "FILE_GENERATED_COMPONENT_PREFIX" with a unique
number to ensure the generated component names will be unique within
the first few characters anyway.
- New "TryMeUserInputUsed2CreateFile.MM" sample.
- 07.310 (6 November 2007)
- Made the link process of the "DllCa-C" command more
flexable (don't have to override the "kitchen sink").
Also added the "-mwindows" option. Other minor tweeks.
- The "VbsCa" command's logging (CaDebug())
now includes a timestamp.
- Minor cosmetic change to progress dialog (ActionText moved left and extended).
- Now that I know about error code "2716", I have
created a new "FILE_GENERATED_COMPONENT_MAX_LENGTH" option which I
have defaulted to 40.
- New "Browse for File Dialog" DLL custom action tip.
- Improved (and made configurable) the comment (in the html report) for
the binary produced by the "ProductValidation" command.
- 07.291 (18 October 2007)
- Added the "PreExists" parameter to the
"MacroCfg" command.
- Fixed bug in the "files" command's handling of
"SUBDIR='FLAT'", as this only adds files to a single directory
you should not be getting an error message if adding to a single
component.
Note that this error message has also been improved.
- Changed the default value of the "DIRTREE_DRIVE_PROPERTY_PREFIX"
macro to "DRIVE." as a
Windows Installer bug
prevents use of the previous prefix on the command line.
- New option "FILE_GENERATED_COMPONENT_PREFIX" (set to "FILE.").
Also new "FILE_GENERATED_COMPONENT_USE_FILE_AS_KEYPATH" option.
- 07.273 (30 September 2007)
- The "message" parameter of the "ProductFind"
command was being treated as invalid.
Also added the "ValidateAfter" parameter.
- Added some debug output to
timestamp start and end of html report generation.
Also timestamp other lines more.
- Under very rare circumstances directory tree creation
could fail with a rexx syntax error caused by incorrect usage of
the "$$RxVar" transformation.
I have found similar issues in the
"component" and "feature"
commands.
- 07.266 (23 September 2007)
- The CaMsgBox() function could
previously display "ERROR:" for informational message boxes.
- Added definitions of DVD capacities
(for example "COMPRESS_CAPACITY_DVD-R(SL)").
- 07.258 (15 September 2007)
- Compile no longer fails if "COMPILE_CABDDF_MaxDiskSize" is greater
than 1 gig.
- Improved the "New -> Command Prompt (here)"
facility to use "PUSHD" (only if required) so that it
now works around Windows' UNC issues.
- Logging of msi build pass 1 and 2, dll build and zip output looked
like one long line in notepad (this is a notepad bug if anything but still)...
- Improved extra file handling in the "Free Extractor" framework.
- Made delimiter handling of many commands more consistent.
- Minor tweeks to zipping code.
- 07.244 (1 September 2007)
- New "msi to exe" framework based on "Free Extractor".
- Added the 4 new "Shortcut" table
columns defined by
Windows Installer 4.0+ to the "Shortcut" command.
- Text that "GuidGet" puts into the guid file is
now configurable.
- Added the "UninstallOnSupersedence" & "Shared" attributes
(Windows Installer 4.5) to the "component" command.
- 07.235 23 August 2007)
- Multiple uses of the "ComPlusCompUpdate" and
"ComPlusRole" commands could
fail as VB variables were being redefined.
- While not so much a bug as a user configuration issue, I have made
it possible by default to allocate more than 23 com plus
applications ("ComPlusApp").
- Better error message when MAKEMSI can't allocate sequence
number(s) in the range requested
(see GetSeqNumber()).
Also fixed bug where allocated range could extend past specified
end point (when range full).
- 07.222 (10 August 2007)
- You can now pass the name of a macro in the "conditional" parameter
of the "Directory" command.
- By default the code generated by the "ShortcutUrl"
command now ignores resizing problems (to be more IE7 friendly).
- Added the "64bit" & "DisableRegistryReflection" attributes
(Windows Installer 4.0) to
the "component" command.
- The "Watch Uninstall Keys" facility will now
also tell you if a detected product is a Windows Installer one.
- 07.212 (31 July 2007)
- Updated the "Registry Conversion" facility
and the "RegistryImport" command.
Fixed some minor issues and added some debugging output.
The registry exported by the "Install Watch PRO"
program could contain intermediate ",00" sequences in "hex(2)"
data (invalid) and terminating commas on hex(2/7) values,
these are now handled.
- The ability to configure compile compression OFF by processing
mode was not working correctly.
- 07.194 (13 July 2007)
- Some source management utilities such as "AccuRev" can
create NTFS hard links ("virtual files"),
unfortunately Windows (WinXP SP2 at least) has bugs in their
"8.3" filename retrieval.
I have created a workaround so that the
"file" and "files" commands
will not fail for hard links.
Improved associated error messages.
Note that "virtual directories" (NTFS reparse or junction points)
have always worked.
- Win2000 wrapped lines in the Add/Remove Applet,
WinXP doesn't (probably a bug).
This could cause some very wide dialogs if there were few
newlines in the text defined by the "COMPANY_PROPERTY_ARPCOMMENTS"
macro.
By default MAKEMSI now inserts new lines at end of sentences
(". ") making it much more likely the dialog will be well sized.
- Slight improvement to the error handling in the CA generated by the
"WrapInstall" command.
- If you turned off documentation installation with
"COMPANY_WANT_TO_INSTALL_DOCUMENTATION"
macro you also had to set
another macro ("MSI_COMPLETE_AT_END_OF_PASS") or the msi would
not install, this is no longer required.
- 07.180 (29 June 2007)
- The "MsiValFilter" report used html entities
for a tick and cross, unfortunately these are not supported by
IE6, so now default to true/false text.
- Updated the "Test for AntiVirus Issues" shortcut.
- If the build fails due to inability to create basic WSH objects then
error message now suggests it's reinstallation.
- 07.174 (23 June 2007)
- 07.167 (16 June 2007)
- Now installs ftype of "MAKEMSI Script Source" for ".mm" files
rather than "MAKEMSI Script".
This makes it easier to search one (of ".mm" or ".mmh") but not
both in Yahoo Desktop Search or other programs that work off file type.
- To "play it safe" the "VbsCa" command was
opening/closing the log file for every write, this could be slow on
compressed directories, it no longer does this.
- The "VbsCa" command now defines an "Installer"
variable of its own and initializes this for WSH testing outside
of the MSI.
Unless you use "session.installer" this new variable will be
used.
- 07.155 (4 June 2007)
- Fixed a bug in the "file" and
"files" commands which could fail if the commands
needed to create "Directory" table
entries and you had
changed the default validation to "NEW" (DEFAULT_ROW_VALIDATE_NO_WHERE).
- Improved the "ProductValidation" command to fall back to
using "Products" property if "ProductsEx" unavailable.
Other minor changes.
- Added the "COMMENT" parameter to the "MsiValFilter" command.
- The "Shortcut" command now adds a basic comment to
any icons it might define.
- New language localization
example "TryMeDutch.MM".
- The "VbsCa" command now dumps the Windows Installer
version in the header.
- Includes newer PPWIZARD (version 07.149).
- 07.145 (25 May 2007)
- 07.118 (28 April 2007)
- Added 2 more options to the "WrapInstall"
command (WRAPINST_BASETYPE_*) to allow more
configuration of "base" custom action attributes.
In particular you may need to configure to "Deferred System".
- Added the "VBSCA_DEBUG?" options to the
"VbsCa" command to prevent output to
the screen or vary processing.
- Added more debugging output to partially documented
"UpgradeTable" macro.
- All links to the online Platform SDK documentation
should now be correct.
- 07.058 (27 February 2007)
- New "ProductValidation" command.
- New "uisample.msi" template, which means at a minimum:
- New Vista "MsiRMFilesInUse" restart manager dialog.
- The action button of "VerifyReadyDlg", "VerifyRemoveDlg"
and "VerifyRepairDlg" dialogs now have the Vista UAC
"ElevationShield" attribute.
- Updates some "Error" table
messages.
- Some new and updated "_Validation" table
entries.
- Bugs in latest "MSIVAL2" from Microsoft may cause
problems such as incorrect reporting of invalid bits in
"VerifyRepairDlg.Repair" etc when updating MSIs, see
code in "UISAMPLE.MMH" for example
of workaround.
- Added the 4 new "Shortcut" table
columns defined by
Windows Installer 4+.
- 07.038 (7 February 2007)
- Updated the sample file "HotFix4WinXpSp2.mmh" so
that the hotfix example won't fail to build if
info zip
hasn't been setup yet (its highly recommended that you do get around to this).
- 07.026 (26 January 2007)
- Better "Media" table entries produced by the
"MergeModule" command.
You may have had problems if you tried to install from
an administrative install.
- If zipping files and it fails, by default now display
zip console output in notepad as well as displaying error message.
- If told not to zip source files (as done by "ME.MMH")
then MAKEMSI now outputs an informational message indicating this.
- 07.002 (2 January 2007)
- If the Parent parameter of the "Directory"
command contains macro references
resolving to system folder properties
then it will no longer fail.
- In WINNT+, you can now use "MM ?"
on a command line to quickly open the "TRYME" sample
directory (or "MM ??" for MAKEMSI directory).
- Added code to MSIVAL2 validation to output more info if its error
message contains the code 1607.
- 06.355 (21 December 2006)
- 06.352 (18 December 2006)
- 06.342 (8 December 2006)
- 06.339 (5 December 2006)
- The code handling the "Delimiter" parameter of the
"PropertyList" command was fixed
(it was incorrectly spelled "Delimter").
- Modified property "stamps" in "COMPANY.MMH".
Added extra but can now also be turned off.
- 06.333 (29 November 2006)
- 06.305 (1 November 2006)
- The "Property" command now deletes the property
if value resolves to "".
- 06.299 (26 October 2006)
- Better error message when creating components with the
the "component" command and
directory information was not passed.
- Better error message on the "file" and
"files" commands when both the component and
destination directories are supplied.
- 06.293 (20 October 2006)
- By default the "Icon" command now adds
to the "BINARY" section of the generated documentation.
The command now has "DOCO" and "COMMENT" parameters.
- You can now override the default messages returned when
a "@validate" (on a "row" command) fails.
- 06.286 (13 October 2006)
- If you were updating a Windows Installer database such as an MSI
or MSM and it had a "_Validation" table
but this was missing
entries for the "LaunchCondition" table
then by default
MAKEMSI would display a "MISSINGDATA" messages.
- Minor changes to the new debug mode.
- 06.267 (24 September 2006)
- "PPWIZARD" has a debug mode which can be very useful at times but
it produces a huge amount of low level information.
I have created a new debug mode which
produces more relevant higher level output.
- 06.254 (11 September 2006)
- The "STRFINFO.EXE" tool was updated from
version "02.235" to "03.310".
- Minor changes to some error/text messages.
- New more compact document formatting.
- 06.237 (25 August 2006)
- Updated MAKEMSI to make it easy to set the new Vista
"msidbSumInfoSourceTypeLUAPackage" summary attributes for packages
that don't require elevated privledges.
- Relatively minor improvements to upgrade code handling.
- New "progress bar moving"
tip.
- 06.228 (16 August 2006)
- Major changes to how "COMPANY.MMH" updates the
"Upgrade" table
(created reusable code).
The UpgradeCode version file
keyword now supports "named" GUIDS which are now the recommended
approach as it makes it easier to examine the generated MSI or
VerboseLog.
- Minor improvements to the "MsiExtraFiles" command.
- Minor changes to the zipping code.
- 06.215 (22 July 2006)
- New "MacroCfg" command.
- If you were allowing the generated documentation to be added to your
MSI but there were no other files, you'd get an error adding the entry
to the "File" table.
While this bug was introduced in 06.203, the root cause has been
waiting for a while...
- 06.203 (22 July 2006)
- Major compile changes to support the use of the
"File" and "Files" commands in
all frameworks.
This will allow multiple compiles to take place, you can
invoke a compile with the new "Compile" command.
This required changes to the "MergeModule" command.
A compile now takes place in pass 1 as well as a pass 2
(which now may not be executed if its not required).
If you currently produce multiple media or cabinet builds
I recommend you double check the output
If you do have problems try preventing the addition of the generated doco (and please tell me).
- The "NeedEarly" parameter of the "MergeModule"
command is no longer a validation but a request.
Many other changes to this command to support the compile changes.
- New "HookInto" command.
- 06.196 (15 July 2006)
- The exclusions (if any) on the "@Validate" parameter of the
"Row" command can now be limited to particular
columns.
The displayed error message now formats the exclusions better
(formatting may have devolved in the 05.314 release).
- The "File" and "Files" commands
are not currently allowed in all frameworks, where not allowed we
will now display an error message when you use them.
- 06.187 (6 July 2006)
- Added options to how the "Transform" command
generates the summary information (for error handling and validation).
- 06.177 (26 June 2006)
- Since the "06.173" release the component enumeration would probably
fail if creating merge modules.
- An error message is now generated if the "DESTDIR" parameter of the
"Files" command was passed but components are not
being automatically created.
- The directory alias change introduced in the 06.045 release worked
well except when "PrimaryFolder", "Change", or some other
"DirectoryTree" parameters were also used.
It would then use the incorrect key for generated references.
- By default "Directory:TARGETDIR" merge errors are now ignored.
- Internally MAKEMSI now refers to "AnyDir" rather
than "TARGETDIR" when its value doesn't particularly matter.
- Corrected a minor issue with the "TryMeCreateMergeModule.mm"
sample (it now redefines "AnyDir").
- 06.175 (24 June 2006)
- The "early" merging introduced in the 06.132 release was failing
for merge modules which contained files (error 1334 during install).
It created media table entries which Windows Installer didn't like
(correct behaviour like so many things mostly undocumented by Microsoft).
- Minor change to file logging initialization code
("VbsCa" command).
- 06.173 (22 June 2006)
- These "MergeModule" changes:
- Added the "NeedEarly" parameter.
- Now displays merge module table/keys if these caused
an error (other reporting improvements).
- Some improvement to the ignore error capability.
- No longer support version 1 of "MergeMod.dll" (not sure that it worked previously anyway).
- If a merge module (or you) create a component with a name which
is too long (invalid), it would fail near the end of pass 1, this
now continues and I rely on validation to inform the user
(in a more friendly manner)
plus also allowing it to be ignored if the user wishes.
- 06.168 (17 June 2006)
- The "MergeModule" command now uses version
"Msm.Merge2.1" by default and acceptable versions are
now configurable.
- 06.159 (8 June 2006)
- If you are using "schedule" command with the
"JT.EXE" program it would fail if this program didn't exist
on uninstall (user deleted).
Fair enough, however as its not actually required to uninstall these
schedules it is no longer validated.
- Minor change to "MM.CMD" so as to log
better version information into log.
- The "Html2Text()" routine now uses
a "poor man's" conversion mechanism in place of IE automation by default.
IE automation even with all the recovery code I built in is too flakey
(on some machines) to be the default.
If you know of a better way let me know...
- 06.153 (2 June 2006)
- 06.147 (27 May 2006)
- The "VbsCaCadGet()"
function now supports an enumeration operation.
- New "Dynamically Update Dialog Controls" tip
demonstrates making temporary (in memory) database changes
during installation.
- Minor change to the dialog's title width produced by the
"Dialog" command.
Added parameter validation.
- These "DialogEntry" command changes:
- Now validates passed parameters.
- The "SORT" parameter no longer exists
(replaced with "PreSorted").
- Now supports the "ListBox" and "ListView" controls.
- You can now specify the exact ordering for the ComboBox
control.
- You will no longer have problems creating a second
"TEXT" control on the one dialog.
- 06.138 (18 May 2006)
- On attempting to override some "SUMMARY" items in the HTML report,
you could get two entries, the original plus your changed one!
- Lots of changes to the "ADSI" command.
The Site IDs this command assigns to new web sites are now
date based (YYYYMMDD##) by default as it seems to work fine in
IIS 5 as well as 6.
You can also assign (or propose) specific numbers if you wish.
Error handling of "user" code improved
(code isolated in its own subroutine).
- The "VbsCaCadGet()"
function now supports a query key operation.
- 06.132 (12 May 2006)
- The "MergeModule" command now attempts to
invoke the merge when the 1st merge module is encountered rather
than waiting until all other processing completes.
This required significant changes to the
"File" command as well as the compile code.
- New "TryMeCreateIisSite.MM" sample which creates
IIS web sites.
- Added the "ExistingOK" parameter to the
"TableCreate" command.
- 06.124 (4 May 2006)
- The "ADSI" command could fail on IIS v6 with an
"overflow" (vbscript runtime) error because of its use of
huge site ID numbers.
- 06.119 (29 April 2006)
- Sundry improvements to the "RunCmd" command including
adding a "@" parameter to make the command much more general purpose.
- The color of the large text on the "FatalError" dialog is now changed
(by default) to red to make it more obvious that the install has
failed.
- The "UISAMPLE_ADD_INSTALL_INSTRUCTIONS_BUTTON_URL"
will no longer generate a "2732" error dialog if pressed during
lengthy "AppSearch" (it will simply not work if pressed too early).
- You can now specify a password for the optional
zipped source code.
- The log header created by the "VbsCa" command
now logs whether it is "immediate" or "deferred".
- Includes newer PPWIZARD (version 06.112) which can now
determine rexx syntax error locations better than previously.
- 06.111 (21 April 2006)
- Fixed some "features" in the handling of
the "Access" command/parameter.
Now correctly handles multiple attributes such as "GENERIC READ GENERIC_EXECUTE".
Now handles user names containing spaces (need to quote for backwards compatability).
- Updated "VbsCa" to better handle DCOM
configuration/permission issues that may cause Windows Installer
not to work correctly.
Basically we now correctly identify the fact that "Installer" (and "Session")
objects don't exist!
- The "DESTINATION" parameter of the "File" command
now allows you to specify the installation directory without you
needing to supply the filename as well.
- Minor tweaks to the "DllCa-C" command.
- Fixed a minor bug which could cause single quotes to be treated as
a delimiter on a number of commands (unlikely to have caused any problems).
- 06.096 (6 April 2006)
- 06.079 (20 March 2006)
- The "UpgradeCodes" keyword
probably didn't work (at least always) since the 06.045 release.
- Better error handling when generating zip files.
- 06.067 (8 March 2006)
- You can now create transforms with the new
"Transform" command.
- Added some parameters to the "VBS" command and
changed internal code making use of it to generate better error
messages.
- 06.053 (22 February 2006)
- Updated the "DirectoryTree" command and all others
that use the "ACCESS" parameter to allow a list of aliases to be
supplied.
- 06.045 (14 February 2006)
- Updated the "DirectoryTree" command so that rather
than complaining about "naming" a key it automatically creates the
"alias" for you.
- Better "missing primary key" error message when incorrectly
defining tables.
- Minor change to the handling of the "UpgradeCodes" keyword in
a version file.
- 06.040 (9 February 2006)
- Improvements to documentation.
- 06.015 (15 January 2006)
- The "Options4Component" parameter on the
the "Files" command was a bit dodgy
(could cause rexx syntax error).
- The error message that gets generated on Windows Installer row
validation errors has been improved to make it obvious that its
Windows Installer complaining.
A GUID error will now also indicate that all letters should be
upper case. Bad "8.3" type messages now also include an example
of a good one.
- The Display a file's Properties tool didn't seem to
work if the filename contained spaces.
- 05.341 (7 December 2005)
- MAKEMSI how has a go at setting the
"PLATFORM_SDK_DIR" macro if you don't.
- More tweaks to the "DllCa-C" command.
- Modified the "summary" command to work
around the "summary write bug".
- This is intended to be the last release until at least mid Jan 2006.
- 05.330 (26 November 2005)
- More tweaks to the "DllCa-C" command.
- Bit more validation on the products version number.
- The "SelfRegister" command would fail if
ordering was requested.
- No one reported any document properties
initialization failures however it failed on my new WinXP computer
so I have modified it to hopefully work better.
- 05.314 (10 November 2005)
- Simplified the "DllCa-C" code to build the DLL
so that it should be simple to plug on other compilers, tools or
steps.
- The "DllCa-C" DLL command now supports user
resources (.rc file) and adds versioning information to
the generated DLL.
- The "RegistryImport" command now drops leading
zeros on imported "dword" values (cosmetic).
- The "TryMeCreateMergeModule.mm" sample was failing.
I think I broke it in the v05.238 release.
- The exclusions (if any) on the "@Validate" parameter of the
"Row" command were not working for "pass 2"
updates (MAKEMSI internal). Modified caching of this data.
- 05.310 (6 November 2005)
- New "DllCa-C" DLL command which creates C/C++
source, compiles it, links to create the DLL and adds the DLL to
the MSI without you having to worry about separate build steps or
export decorators etc.
- Major improvements to "SelfRegImport.MMH" with some help from
Merl Schmits (thanks).
- The "VALUE" parameter of the "INI" command can now
be empty and MAKEMSI will work around the Windows Installer
restriction.
- Added the "*VALUE" parameter to the "INI" command.
- New "TryMeDllCustomAction.MM" sample.
- 05.299 (26 October 2005)
- The "RunProcess.EXE" program can be a quirky
beast and what works on WinXP doesn't on WIN2000.
I think I've got it right now...
Improved logging.
- 05.298 (25 October 2005)
- The "RegistryImport" command was not MSI formatting
the registry "NAME" if required (rare).
The "MsiFormatted" parameters value is now only used as required
and only specifies whats actually formatted.
- The sorting of the "Time" column of the file report wasn't working
for columns containing "*" (this probably broke in the "05.078" release).
- Slight changes to "Adsi" code to improve logging.
- The HTML report now looks better for files without an extension.
- Most available document properties
were not being used (for example "Dimensions" for graphics).
- The document properties
initialization step was hanging on a users computer (faulty 3rd party shell extension).
I have creates a generic workaround for this and generally
made the coding more robust.
- 05.285 (12 October 2005)
- New "DATA" parameter on the ComPlusApp command.
- Improved the handling of the "VALUE" parameter of the
ComPlusProperty command.
Made some logging improvements.
- Better error message if the "RowKey" parameter of the File
command passes an invalid identifier.
- Fixed the weekday used in the logfile generated by the
VbsCa command (VBSCA_LOGFILE_BASENAME_SUFFIX definition).
- Includes newer PPWIZARD (version 05.285).
- 05.280 (7 October 2005)
- You can now define a URL for installation instructions,
if supplied a push button is added to the welcome dialog.
- Added a lot of .PCH (patch file) table definitions.
- Julian has supplied a new version of
"PATCH.MMH" (thanks).
This is now installed (so no more need to re-create from documentation).
- Fixed what I believe to be a misplaced "#endif" in "ver.mmh".
- Includes newer PPWIZARD (version 05.278).
- Started a "Python To MSI" framework which will
compile python (.py) scripts into ".exe" files and create an MSI.
- 05.259 (16 September 2005)
- Improved the positioning of some "popup" dialogs like
"ErrorDlg".
- Added the "NoPrefix" attribute to the "bottom line text".
- Updated the "Display a file's MD5" facility to
no longer use a logon script.
- 05.247 (4 September 2005)
- The "CaDebug()" routine now
regenerates any "err" object entry state on exit.
This is to prevent the debug function from clearing details.
- Added the "NoPrefix" attribute to the error dialog's text and
Progress dialog lines 1 and 2.
These will now correctly display strings containing "&"
characters.
- You can now define your own filter on the
"FilesExclude" command
(you can decide to remove files based on your criteria).
- Added the "SHARED" and "HK??" persistance options to the
"Property" command.
- Minor changes to the "DialogEntry" command.
- 05.238 (26 August 2005)
- Updated the "Component" command's
feature to component linking so that by default the feature must
exist at the time of the linking.
- Improved the handling of "MAKECAB.EXE" (compile) related errors.
- Now adjusts the console buffer length (by default), configured with
the "MAKEMSI_MM_CONBUFFSIZE" environment variable.
- Minor changes to the "DialogEntry" command.
- 05.222 (10 August 2005)
- The "FEATURE" parameter on the "Component" command
now also functions if CREATE="N" used.
- To prevent a partially built or updated MSI from being installed
(in case you forget) a temporary
launch condition
is now added when starting updates and removed after all
changes are complete.
- Fixed the "EXLIST" parameter on the "WrapInstall"
command.
Also added "WorkDirI" and "WorkDirU" parameters.
- The "EXLIST" parameter used by a number of file related commands
can now accept any characters
(prevents the "incorrect call to routine" error message on previously "invalid" names).
- 05.214 (2 August 2005)
- 05.209 (28 July 2005)
- New "IniImport" command and a
"INI Conversion" explorer option.
- Added the "Options4Component" parameter to
the "File" and "Files" commands.
- Added a simple test to check for an incomplete MSI script which
can result from certain user errors so as to produce a better
(non-cryptic) error message.
- Now also includes a newer PPWIZARD which enables better nesting
validation so that the "incomplete MSI script" is less likely to
occur in the first place.
- 05.202 (21 July 2005)
- The generated doco can now include the complete contents of
any MSI tables you wish, the
default includes
"ServiceControl" and "ServiceInstall".
- All MAKEMSI commands with a "DOCO" parameter now support
a configurable default.
- 05.194 (13 July 2005)
- Huge improvement in performance, particularly for large numbers
of files.
On a simple test of a single "Files" command
loading 5,000 small files installed by a single component,
it initially took nearly 116 minutes,
after the change it went to 41 minutes (the more files the bigger the improvement).
Removing the files part of the generated documentation
(see the "performance" section)
reduced this time to 14 minutes!
- Made an improvement to the way you
specify directory trees
in commands such as "DirectoryTree".
The "[key]Rest" is now treated the same as "[key]\Rest", the former
was previously not allowed but would be easy for someone to accidently
use as its correct Windows Installer formatting.
- Fixed a minor error reporting bug in the "Row"
command. If the "@OK" parameter was used and it was about to display
an error a VBSCRIPT syntax error could occur if the "@WHERE" clause
contained double quotes.
- Updated the "Row" command to detect the file "marker"
that "MsiDiff.VBS" uses to represent binary files so it can output a
better error message.
- 05.187 (6 July 2005)
- Added the "InstallDir" parameter to the "WrapInstall"
command.
Other minor tweaks to this command.
- Now have an hour glass etc when sorting tables in the doco.
- You can now easily disable the FILE part of the HTML doco
if you have many files. Other minor report generation tweaks.
- Minor changes to the "Binary" command.
- 05.181 (30 June 2005)
- Now generates more and better (not perfect) "progress" messages
when building MSIs with a large number of files.
- New custom action attributes and support for setting up a
specific value (not just setting and resetting bits).
- Fixed a bug which could cause some of the MAKEMSI custom action
related commands (when using no longer documented parameters)
to generate an error message indicating that a
cryptic attribute (similar to "IMMEDIATE35") was invalid
(spaces were being stripped).
- 05.172 (21 June 2005)
- New "ShortcutUrl" command to simplify creation
of internet shortcuts.
- The "Validate It" command now runs in a window
so you can see the progress.
- The "IniFile" command handling of the
ini file name improved to add 8.3 information if required and
not supplied.
- The "Ini" command wasn't accepting the
"DOCO" parameter.
- 05.165 (14 June 2005)
- The "Schedule" command now allows you to define
some install time command line manipulation code.
- The "DESCRIPTION" keyword's
value can now contain HTML (it could before but tooltips and
add/remove would look silly - the HTML is now stripped).
- New "Html2Text()" routine.
- "MsiSync.VBS" now always logs
(to "TEMP" dir by default), you can override the name.
Logging is not perfect but useful.
Also environment variables such as "%USERDOMAIN%" will be replaced
in all configured values.
- Renamed the incorrectly named "VALID_MSIVAL2_MSM_CUB_BASENAME"
definition to "VALID_MSIVAL2_CUB_BASENAME".
- Fixed version number error in the
MSI updating framework
(probably broke in the last release).
- The "/TableDefinition" command now validates that
you defined the primary column(s).
- Improved validations on the "MSI" and "/MSI"
commands.
- Assorted little fixes and spelling mistakes.
- 05.147 (27 May 2005)
- Fixed a bug in the "Directory" table
create on demand
capability where the parent directory is a drive letter
("TARGETDIR" wasn't being created).
- The "Build MSI" option now displays an error
message if a script is in a UNC formatted directory name
(not supported by Windows).
- Now have a "Beep" configuration option for
"MsiSync.VBS".
- 05.140 (20 May 2005)
- Created a new "Schedule" command option to make it
more WinNT friendly and another to add task debug info into the logs.
- Improved VbsCaRunSync() logging.
Also fixed a rare issue where the function could trap.
- New "TryMeTaskSchedules.MM" sample.
- 05.133 (13 May 2005)
- 05.127 (7 May 2005)
- Created a new "ME.MMH" configuration/branding
file which the examples now use.
- Improved the "Adsi" command's dump code which is
now shared with a new "IisDumpMetaBase.VBS" tool.
- Minor change to the "Icon" command to ignore
the "icon bloat" messages that older versions of MSIVAL2 can
produce for product icons.
- 05.119 (29 April 2005)
- Smartened the log file naming and truncation code for the
"VbsCa" command.
- Minor changes to the default script CA error messages (1720/2740).
- Now capture environment information in the
"MM.CMD" batch files.
- Added some more diagnostic code to detect and report some
environmental issues.
- 05.106 (16 April 2005)
- Improved the "Files" commands handling of the
"DestDir" parameter when "c:\" or similar used.
- Improved the way the "ServiceInstall" and
"ServiceControl" commands generate row keys if
none supplied (ensure valid and unique).
- Better error message in place of a cryptic one if there is
a problem in "Need83Name()" (caused by a user's mistake).
- If you were generating VBSCRIPT to perform "MsiExtraFiles"
validations then a "Expected end of statement" error was generated.
Made a change to "VbsCa" so that this sort of
"mistake" is handled generically.
Also improved checking when all defaults used.
- 05.098 (8 April 2005)
- The file "verify" button is now greyed out (disabled) while a
verify is in progress.
It is now also used as a "status bar" (as a HTA doesn't have one).
- The "verify" of files defined with the
"HtmlDirTable" command was not working correctly
(broken since the 04.231 release).
- Added the "OPTCODE" parameter to the "VbsCa" command.
- Created CaCreateFolder() and
CaDeleteFile() routines for
custom actions.
- Created the MakeSfnLfn()
routine for use in imbedded script.
- 05.089 (30 March 2005)
- 05.078 (19 March 2005)
- The "File" and "Files" commands
now have "DATE" and "TIME" parameters allowing you to override
the file times.
- Updated the "file" report so that by default a
"*" is displayed next to a source
file time that differs from the install time (the comments
column will then also contain the install time).
- You can now directly refer to icon files on the
"Shortcut" command.
- The aliases defined by the "Icon" command were
documented as case sensitive but handled as case insensitive, code
now matches the doco.
- The compile process could cause a partially or
completely incorrect timestamp to be used on some installed
files (no known pattern).
I have worked around this Microsoft "MAKECAB.EXE" bug.
- The "MAKECAB.EXE" issue mentioned above along with
yet another restriction (the seconds value must be even - the
source file's value may or may not be even) could cause incorrect
file time difference warnings ("MD5 matches but ...") from the generated
report's file verification button.
- 05.071 (12 March 2005)
- The "05.025" release introduced a bug, only MAKEMSI generated
directory names should have been uppercased however even user
specified ones were being translated.
- Improved the display and logging of error "locations" in
"VbsCa" custom actions.
- 05.062 (3 March 2005)
- Fixed the "WrapInstall" command to prevent
self registration of any files in the "CD image".
The "Rc0" parameter can now be passed "ASYNC".
- Added some error checking options to the
"Zip Source and Add to MSI" feature
(checking on by default).
- Improved "CaMsgBox()" for VBSCRIPT
so that it returns the message boxes return code and allows you to
specify Yes/No and other variations.
- New CaMkObject() routine.
- Added the "doco" parameter to the "VbsCa" command.
- More improvements and minor fixes to the
"MsiSync.VBS" script.
- 05.056 (25 February 2005)
- Modified "TableDefinition" so that if there is
more than one definition for any particular table all but the
first is ignored (by default).
- Improved "MsiSync.VBS" script so that it
can obtain configuration from an XML file.
The MSI files no longer need to be in the same tree as the script.
- Some database schema changes:
- Changed the default length of feature names
("TABLES_LNG_FEATURE_COLUMN") from 32 to 38.
- Changed the "Version" column of the "TypeLib" table from
"I2" to "I4".
- Changed the "File_Manifest" column of the "MsiAssembly"
table from "s72" to "S72".
- 05.049 (18 February 2005)
- 05.039 (8 February 2005)
- Fixed the "RegistryImport" command and
"Registry Conversion" shell extension.
They were not generating a correct type of "EXPSTRING" for "HEX(2)"
data.
Will no longer hang on incorrectly formatted "HEX(2)" data (ending "00" missing).
- Updated the "MSI MENU..." so that
the "X" for close title bar button is removed
(unfortunately the titlebar is also removed).
I needed to do this as I don't know how to
grey it out and using it at the wrong time can cause problems.
- The "JsCa" command now adds a basic comment to
the "binaries" HTML report (like the "VbsCa" command).
On both commands you can now prevent the binary details going
into the doco at all.
- Added the "Options4Component" parameter to
the "Property" command.
- 05.025 (25 January 2005)
- Any directory keys automatically created by the "DirectoryTree"
and other commands are now all upper case (public properties).
- You can now define the environment variables
"MAKEMSI_MM_ROOTDIR.?" to move the output directory
(perhaps to development and production output separate).
- New "TryMeAddVersionKeywordAndLaunchCondition.MM"
sample.
- Modified the "Validate It" option, now saves
file in "Validate.IT" subdirectory. Minor formatting changes.
- No longer filter out the validation message
"Mismatched component reference" ("MAKEMSI.FLT").
- Minor fix to "MSI MENU..." menu options.
- New PPWIZARD version (05.013).
- 04.347 (12 December 2004)
- The "Binary" command now supports comments for
any generated doco.
- The "VbsCa" command now adds a basic comment to
the "binaries" HTML report.
Sundry other minor changes including improving the default filename.
- Updated MAKEMSI to see if NTFS 8.3 names have been turned off in
the Windows registry (not supported) if it fails to obtain a "shortname".
- Updated the "Invalid ShortName Returned (File System Object)"
detection script.
- Added the "EXLIST" parameter to the "WrapInstall"
command.
- 04.344 (9 December 2004)
- 04.331 (26 November 2004)
- Improved the "Zip Source and Add to MSI" option
to zip up all files defined as "samples".
- MAKEMSI scripts whose filenames contain spaces
are now supported by the
"MM.CMD" batch file as well as the
"explorer options".
- Changed the default for "COMPANY_INSERT_ResolveSourceAction" to
"N" as a related change in the 04.322 release shows that its not
a good idea to have this installed by default.
- New PPWIZARD version (04.328).
- 04.327 (22 November 2004)
- The 04.322 release introduced a bug in the
"Directory command (if "VALUE" used).
- The "Shortcut" command can now create
components for you if required.
- 04.322 (18 November 2004)
- Updated the "Directory command
(and others indirectly) so that MAKEMSI now supports
directory creation on demand for "standard directories".
By default keys such as "ProgramFilesFolder" are now only created
if they are required.
This can eliminate some install issues on "problem" boxes as all
directories whether required or not are validated at install time.
- Fixed an issue with the "Validate It" option.
- Added a "Zip Source and Add to MSI" option.
- Changed the default for "COMPANY_RESOLVE_SOURCE_CONDITION" to
include repair.
- Started a new "Internationalization" section, any
help/information appreciated.
- Added some more table definitions.
- Fixed a minor table creation bug which as far as I know didn't
create any problems.
- Includes a new PPWIZARD (04.322).
- 04.316 (11 November 2004)
- New "Validate It" option.
- Updated the sequence number handling of the "ICE"
command and improved general processing.
- The documentation for the
"Validation Suites (create CUB files)"
section is much improved and now includes documentation for the available
commands and functions.
- 04.309 (4 November 2004)
- New "DirectoryCompress" command.
- You may need to modify your source, see following issues:
- The "Schedule" command has had major changes and
is not backwards compatable, it will however only take minimal
changes to correct and failing code will tell you of the need to
make these changes.
The main improvements are that it now supports rollback,
you can now have conditions on schedules and
use both "JT.EXE" and "SCHTASKS.EXE"
in a single script
(MSI may be being build from reusable components build by
different people and/or at different times).
- 04.302 (28 October 2004)
- Fixed a MAKEMSI install issue with the location of WSCRIPT.EXE
(many thanks to MS for making what should be such a simple task so complicated...).
It could cause "800736B2 - The application binding data format is invalid"
errors when some installed shortcuts and options
were used.
- All html report heading sections are now fully expanded if
scripting is disabled.
- 04.295 (21 October 2004)
- Fixed a minor formatting bug in the generated ".hta"
(">" was visible at the top if the file is renamed to a html extension).
- The top line of buttons are no longer generated if scripting
disabled (simple links are generated instead).
- 04.288 (14 October 2004)
- 04.281 (7 October 2004)
- The default extension for the generated report is now ".hta" to
work around the "IE Script Blocking"
issue in WINXP SP2 (and elsewhere - soon?).
- Not all attributes were being dumped in the logging for the
"ADSI" command (plus other improvements).
- New "Display a file's Properties" option.
- 04.274 (30 September 2004)
- Well Julian Onions has done it again!
I now include a newer version of regina which gives MAKEMSI an
extra 11% performance gain (on my "MAKEMSI.MM" script).
- Fixed a non-fatal "file information" bug when generating the
HTML report.
Restored the "DUMP" "attribute" capability
(its the default in developer mode).
The generation of the html report should now be faster.
- Now always create the "FeatureComponents" table so that
if you encounter the
"no components issue"
then at least Windows Installer won't trap in "MSI.DLL".
- Minor change to how sequence ranges such as "1000-InstallFinalize"
are handled.
Previously 1000 would never have been returned, but it now can be.
This should not effect anyone.
- MAKEMSI now validates that the property used for the
FileFind and RegistryRead
commands doesn't contain lower case characters.
- 04.267 (23 September 2004)
- A user reported problems with the file commands ignoring files
whose name or path contained "scandinavian" characters.
You can now define the codepage MAKEMSI runs under with the
"MAKEMSI_MM_CODEPAGE" environment variable and
the default codepage is 1252.
- The "Directory" command has a new "ASIS"
parameter which replaces the previous use of curley brackets to
indicate the directory name should be left "as is".
- Added "SystemFolder" mappings.
- Many thanks again to Julian Onions for suggesting a PPWIZARD
performance improvement (in PPWIZARD 04.261+).
This makes MAKEMSI about 12% faster for my "MAKEMSI.MM" script.
I have also documented the "PsSuspend.EXE" tool
as it has enabled my builds to be about an extra 30% faster!
- 04.261 (17 September 2004)
- The "WorkDir" parameter change in "04.231" introduced a bug in the
handling of that parameter for Binary custom actions.
Minor improvement to the "args" parameter handling.
- Updated the "FilesExclude" command to take
multiple filemasks on a single command.
- Improved error handling/reporting for MSIVAL2
validation failures.
- Buttons now disabled when a "MSI MENU..." task
is running.
- 04.252 (8 September 2004)
- Fixed the processing of the "REMOVE" parameter of the
"File" command to work when its also creating a
component for the file.
This also affects the "Files" command.
- Reverted the "Install - Verbose Logging" option
to work the way it used to under WINNT+.
The menu is now available by a right click
"MSI MENU..." option which contains a fix for a
truncation bug caused by a Microsoft "InputBox()" bug.
- Improved the "custicon" icon to look better and be more meaningful.
- Includes a new PPWIZARD (04.251) containing a minor performance
improvement as suggested by Julian Onions.
- 04.239 (26 August 2004)
- Fixed "Unknown Variable: NOVERSION" bug with "OPENMSI.MMH"
based scripts.
This bug was introduced in the "04.238" release.
- 04.238 (25 August 2004)
- Improved the "Install - Verbose Logging" option
(it now provides many options as is configurable).
- Updated the "Version" processing on the
"File" and "Files" commands to
support the automatic versioning of "unversioned" files.
- Fixed the "SelfReg='?'" processing on the
"File" and "Files" commands.
- Now display the install date when product info queried in HTML report.
- One of my "DENNIS.MMH" changes in the 04.231
release will prevent builds using it in WIN95-ME.
- For WIN95-ME now set "FILEINFO_GET_DOCUMENTINFO" to "N".
- Modified the default PPWIZARD build summary to add built MSI version
(by default).
- 04.231 (18 August 2004)
- Fixed a bug in the "MergeModule" command which
would fail merging modules which didn't contain files
(bug probably introduced in the "04.007" release).
- If a file has at least one attribute (Hidden, System or ReadOnly)
set, then the values of all these attributes will be displayed in
the generated HTML report.
The files verification button now also checks these file attributes
for all files.
- Changed the default "left side" graphic, this has a "clear"
section on top which can display whatever text you wish,
to turn this off then set the macro "COMPANY_LEFTSIDE_TEXT"
to an empty value (you can also reposition the text etc).
You can restore the original graphic by using defining
"UISAMPLE_DIALOG_FILE_dlgbmp" to "LeftSide-Purple.bmp"
(see "DENNIS.MMH" for example if unsure).
- The "WorkDir" parameter of the ExeCa command can
now take a directory path and not just a key.
- Added the "ValidateAfter" parameter to the FileFind
and RegistryRead commands.
- The "MsiExtraFiles" change introduced in the
"04.177" release would fail in silent install situations.
- Updated the "File" command to be a little more
intelligent (forgiving) with default 8.3 names in cases where
files are being renamed.
- 04.224 (11 August 2004)
- Modified the "Export to .IDT" option so the
".idt" files for empty tables are moved into a separate directory
(makes it easier to examine output).
Empty "binary" folders now removed and the ".ibd" extension
removed and some attempt is made to add an extension if none then
exists.
- New "TryMeLoadDirTreeMaintainingAttributes.MM"
sample file.
- Added the "AlwaysShow" option to the "Extn"
command.
MAKEMSI extensions now always show.
- The "FileMake" command now creates the
"StateFile" directory if required.
- New version of PPWIZARD included
(mainly for better script error reporting).
- Upgraded regina (rexx) from 3.3RC2 to to 3.3 (official release).
- 04.218 (5 August 2004)
- Fixed the "Directory" and
"DirectoryTree" commands to support directories
containing single quotes.
- Minor change to the compile process.
Code safer and supports scripts in the root directory of
a drive (although this is certainly not recommended).
- Minor improvements to the change history table.
- Minor modifications to graphics specification, the
"DENNIS.MMH" file improved to suit.
- Updated the "Invalid ShortName Returned (File System Object)"
detection script.
- 04.210 (28 July 2004)
- Fixed a bug in the handling of integer values in the
"Registry" and "RegistryImport"
commands (actually workaround to a VB flaw).
This issue only affected values specified as hexadecimal and in the
range &H8000 to &HFFFF.
- Fixed the "DirectoryTree" command.
It could cause a VBS syntax error if used in a macro.
- Better error message if the user does not have "MAKECAB.EXE" installed
in WIN98-ME
(it wasn't being displayed because of the Windows command processor return code bug).
- 04.204 (22 July 2004)
- 04.198 (16 July 2004)
- Updated the "Icon" and "Shortcut"
commands to allow "randomish" names (icon keys) to be generated,
this helps work around some windows bugs which can at times prevent
the correct icon being displayed.
- As well as maintaining platform directories MAKEMSI can now log
successful build information.
- 04.190 (8 July 2004)
- The "SelfRegister" command now supports both
ordered and unordered self registration.
- Updated the "SelfReg" parameter of the
"File" and "Files" commands to
support both ordered and unordered registrations.
- The "ExeCa" command has
virtually been rewritten however hopefully the only
change you may notice is that
the "PROPERTY" parameter no longer exists.
The changes were made to support the new "WORKDIR" parameter.
- The "MsiDiff.VBS" tool is no longer included
in the MAKEMSI installer but has its own package.
This required some MAKEMSI package tweaking.
- Builds launched via Explorer now have the windows titlebar
updated to informative text (WINNT+).
- The new "SourceFile" command replaces
"SourceForReport" plus other undocumented commands.
- The optional RTF licence file can now be preprocessed to replace
macros, insert paragraphs etc.
- 04.183 (1 July 2004)
- The default for the "REMOVE" parameter on the "File"
and "Files" commands can now be specified.
- Updated sequencing of the "RegistryRead" and
"FileFind" commands.
- The 04.177 release introduced a bug which could cause the
Adsi and ShortCut commands
to fail.
- The "patch creation" code sample updated to
create a unique GUID for the patch.
- 04.177 (25 June 2004)
- Added the "8.3" parameter to the "FileFind"
command and improved handling on non 8.3 formatted filenames.
- Updated the "MsiExtraFiles" command to default to
performing checks via standard custom actions rather than script.
Also added the "FILE" and "SIZE" parameters.
- Updated "MM.CMD" to recover from any corruption of the
"REGINA_MACROS" environment variable.
- Now handles files that span 3 or more cab files.
- Some script filenames could cause the build to fail when trying
to create the "stamp" properties (for example if its name contained
a "-" or space character).
- Minor reorganisation of logging directories and their macros.
- Some reorganisation or ARP support links (please double check yours).
- 04.168 (16 June 2004)
- Modified all custom action types
(AbortIf, DllCa,
ExeCa,
JsCaSetup, VbsCaSetup
and PropertyCa).
You should now use the "TYPE" parameter to set attributes.
The older parameters such as "deferred" are still supported
but are not documented or recommended.
Note that if you used "type='35'" on the
PropertyCa command then remove this and add
"DIR='Y'".
- The Adsi, ComPlusApp,
RunCmd, Schedule
and possibly other commands modified
to conform to and make use of recent custom action
sequence and type changes.
- We now have multiple cab/media support.
- New "TryMeWithMultipleMedia.MM" sample file.
- 04.162 (10 June 2004)
- Document information for all sorts of files (including MS Office)
can now be added to the generated HTML report.
I have defined default templates for some extensions.
- Fixed a bug introduced in "04.155", custom action data may not
always have had macros replaced.
- Should never generate duplicate shortnames for directories when
using the "SUBDR=TREE" parameter on the "Files"
command (or directory related commands).
- Now cleans up after the "V1_?????.TMP" temporary files.
- Minor change to the formatting of the generated ".inf" file
(in compile step).
- 04.155 (3 June 2004)
- Better custom action sequence number assignment options for
the AbortIf, DllCa,
ExeCa,
JsCaSetup, VbsCaSetup
and PropertyCa commands.
- The "ExeCa" command could fail if
creating properties.
- The Custom Action Data for deferred
JSCRIPT and VBSCRIPT
custom actions may not have been correctly set up
when multiple sequence tables were also specified.
- A bug was preventing the definition of more than one
dialog.
- Improved the DialogEntry command so
that it is easy to have multiple entry fields on one line
(added "SameLine", "LabelWidth", "X" and "Y" parameters).
- Added some more options to the "MsiDiff.VBS"
tool and added an example of how the generated output
could be post-processed.
- Better handling of very long product names.
- 04.148 (27 May 2004)
- Minor change to the "ComponentId" parameter of the
"Component" command.
- Fixed a bug in the RegistryImport command when
creating empty keys.
- Fixed minor issue with "property stamping" introduced in the
last release (04.142).
- New "TryMeWithFixedGuids.MM" sample file.
- 04.142 (21 May 2004)
- 04.134 (13 May 2004)
- The Access" command improved
(including support for "GENERIC_READ").
- Improved the formatting of the dumped record (on some errors)
to make it easier to understand and more informative.
- 04.128 (7 May 2004)
- Added an "ACCESS" parameter to the
File, Files,
Directory, DirectoryTree
and Registry commands.
- Modified "MsiDiff.VBS" so that it generates output
which almost requires no tweaking to be able to replay via MAKEMSI.
- The install now sets up the extensions generated by the
"Compare -> MAKEMSI Format" and
"Dump -> MAKEMSI Format" options so that it
has the right click build options.
- Modified the "MergeModule" command to eliminate
the "MISSINGDATA" error that may have occurred on some
merge modules (on the "ModuleSignature" table).
The error occurred when using merge modules with incomplete or
missing "_Validation" tables.
Improved some error logging and reporting.
- 04.120 (29 April 2004)
- Reorganised the samples directories.
Added "readme.txt" files to directories.
- By default VBSCRIPT custom actions built in production mode now
don't log to a file by default.
This is to reduce the chance you will have issues with
"Norton's Malicious Script Detection" messages.
- Rewrote all exclude list processing to be cleaner, faster and reuse
common code.
- 04.112 (21 April 2004)
- If you were letting the "File"
and "Files" commands create components for you
then the components were not always being "associated" to the correct
feature (they ended up "belonging" to another feature).
- New "HtmlDirTable" command.
- Fixed the "INSTALLED" version file
keyword so as not to fail if its value contained lower case characters.
- Many smallish tweaks.
- New "TryMeWithNoRootFeature.MM" sample.
- 04.105 (14 April 2004)
- Modified the "SeqTable" parameter of the AbortIf
and PropertyCa commands so that multiple
tables can be specified at once
(all custom actions now support multiple tables).
- Clicking on a heading in the generated HTML report now expands or
contracts contents.
- Modified the handling of the "feature" parameter of the
"Component" command to allow the aliases that
other commands allow as well as the specification of any number
of features (instead of only one).
- Modified "RegistryRead" and
"FileFind" commands so that it can take a default
of "".
- Fixed shortcuts that use WSCRIPT to work in WIN95/98/ME
(another one to thank MS for...).
Made other tweaks as required to get MAKEMSI to build MSIs in these
DOS based operating systems (tested in WIN98).
- 04.097 (6 April 2004)
- Simplified the process of creating merge modules in MAKEMSI.
Created a sample called "TryMeCreateMergeModule.MM".
- Improved the HTML reporting by the "Binary"
command.
- The query buttons in the html report can now tell if a
product was installed per-user or per-machine.
- 04.092 (1 April 2004)
- Improved the file verification reporting to be generally more
informative.
It will now expand any standard Windows Installer keys (if required).
It also no longer reports a file as differing if it has a
different time when the MD5 information (contents)
matches (the time difference is highlighted).
- New "Query Installed State" button under the summary in the generated
documentation.
- Added code to the "Compare -> MAKEMSI Format"
to detect if you try to compare a database with itself.
- Fixed a rare error reporting bug in the "Files" command.
- If there were no files in the MSI (rare due to doco) then
MAKEMSI was failing in the "compile" step.
- The Dialog and related commands modified to work
even if user has made the default validation mode "NEW".
- 04.084 (24 March 2004)
- The file "verify" button now handles many more situations including
the user overriding the install location.
- Improved the "PersistHow" parameter of the "Property"
command.
- The "Key" parameter of the "PropertyCa"
command now exists (to match doco).
The command now also supports setting directory values.
- The "File" command updated so that if it generates
a component name this will not be too long.
This could have been a problem if the "SubDir=TREE" parameter
was used on a "Files" command (deep tree etc).
- Better error messages on the Component and
Feature commands for invalid IDs.
- Improved error handling for the MergeModule
command.
The HTML report now shows the version of the merge module.
MAKEMSI now reports and optionally fails when the "TARGETDIR" bug
exists in a merge module
(see "Files Go into ROOT (can't be redirected)").
- The "Desc" parameter of the Platform command can
now be "" for a group.
- Added a "KEY" parameter to the "AbortIf" command.
- Changed the progress bar to be continious by default, if you
don't like this then set "UISAMPLE_PROGRESSBAR_WANT_CONTINUOUS"
to "N".
- The "MM.CMD" now logs the command used in the console log instead of
displaying it.
This makes it easier for diagnosis or for people who want to include
in automated builds etc.
The "MMMODE" it passes is now never empty.
The error file is no longer generated as it is of little use anyway.
- By default if you are updating an MSI in place the MSI is now
opened in transaction mode and no commit is performed on failure,
if you copy the MSI file before invoking MAKEMSI you may wish to
alter this as a debugging aid.
- 04.078 (18 March 2004)
- Many Dialog and related command changes.
They now also support "MaskedEdit", "CheckBox" and
"RadioButtonGroup" controls.
- The "MergeModule" command could fail depending on
the source files filename!
- Rather than output a tabs warning (which most people ignore anyway)
MAKEMSI now assumes a tab spacing of 4 (by default) and no longer
warns.
- Now using "regina" version 3.3 (RC2) which fixes a number of leaks
that I reported.
MAKEMSI now uses heaps less memory and has been tested to build
32,700 files although even Windows Installer has a hard time on an
MSI with that many files, probably best to compress to cab or zip
(or split into a number of smaller MSIs) if you have that many files.
- 04.072 (12 March 2004)
- Fixed "OPENMSI.MMH", it probably broke in the "04.064" release.
- Updated the TryMeWithUserDialog.MM sample to fix
issue with licence dialog and to add realistic supporting code.
- Added nesting validations to the Dialog
and related commands.
- Modified the Property command for "PERSIST"
related handling (the "VALUE" parameter is now allowed to
supply a empty value and the property need no longer populated
by its internal "RegistryRead").
- Modified "RegistryRead" and
"FileFind" commands to not duplicate sequence
numbers when multiple used.
Also added the "VALIDATE" parameter to make the validation optional.
- By default if you select "Yes" on the cancel dialog you will no
longer get the normal (annoying to most people) "final" dialog.
- 04.071 (11 March 2004)
- The where clause of the RowsDelete command can
now contain double quotes.
- Updated the handling of the "LogFile" parameter on the
VbsCa command to agree with its doco.
- The new Dialog and related commands allows you to
very easily create a new dialog and populated it with entry fields.
- New DialogRemove command.
- Created a new DllCa command.
- Modified the "SeqTable" parameter of the ExeCa
command so that multiple tables can be specified at once.
- Updated the Column command to create some macros
to make it easier to refer to columns within a table record
in your own VBSCRIPT.
- Quite a reorganisation of MSI dialog handling code and neither
"LicenseAgreementDlg" or "UserRegistrationDlg" are now controlled
via properties
(this was making dialog insertion and deletion too hard).
- Renamed "Regina4MM.EXE" to "Reg4MM.EXE"
(and "Regina.DLL" to "Reg4MM.DLL"), if you are invoking MAKEMSI
directly then you will need to change this.
Upgraded the rexx interpreter from v2.2 to v3.2 and changed things
as required (who said life was meant to be easy?).
- 04.064 (4 March 2004)
- Added a "PERSIST" parameter to the Property command.
- Fixed the handling of the "MsiExtraFiles" commands
"MsiRelDir" parameter (it did not create required directories).
It now also has a "CHECK" parameter which allows install time
validation that the required files are OK.
- Fixed a bug in the RegistryImport command.
Filtering was preventing proper operation.
Now detects and warns if tabs found.
Now handles empty key creation.
Most of this affects the "Registry Conversion"
shell extension.
- Modified the "SeqTable" parameter of the
VbsCaSetup and JsCaSetup commands
so that multiple tables can be specified at once.
- You can now set the priority MAKEMSI
runs under, this might improve multitasking so you can do
other work (if CPU slow or low on RAM etc).
- 04.058 (27 February 2004)
- Added some optional "Component" command validation
for references (referenced component must already exist).
- The RegistryRead command updated to support "HKCU"
and similar aliases (and reports errors better).
- The "Registry" command now has a "HK??" alias.
Made a minor html reporting change.
- Modified the default PPWIZARD build summary to add built MSI name
and build mode.
Removed some generally useless items.
- Files specified with the "MsiExtraFiles" command
now appear in the doco (by default).
- 04.050 (19 February 2004)
- The Shortcut command now supports a new
MAKEMSI specific shortcut type which allows advertising of
any command line.
- Added the "SELFREG" parameter (for automatic self registration)
to the File and Files commands.
Fixed "KEYCASE" processing error for "L".
- The "Registry" command can now create its own
components if required.
I have also added a new "COMMENTS" parameter.
- Depending on a few things it was possible for some of the information
in the generated doco for the "Registry" command to
be mangled.
- The "FILE_EXTENSIONS_WHICH_NEED_OWN_COMPONENT" list was wrong for
".ocx" files.
- The FileComment command can now be nested.
- General improvements to file and registry html reporting.
- Created a new RegistryComment command.
- The arguments information in the generated doco for
shortcuts may not have always been correct.
Made some other minor reporting tweaks.
- In some unusual situations the MSIVAL2 filter process could
fail if the windows "FIND.EXE" executable was overridden.
The code has been changes so as not to require this
program at all.
- Now include new version of PPWIZARD as it improves detection and
reporting of rare environmental issues which may prevent
proper operation.
- 04.042 (11 February 2004)
- The "TryMeShortcuts.MM" actually created
a non-advertised shortcut which may have been confusing. I have
updated the samples, created more and
included them in this doco
as well.
- Added a "PAUSE" parameter to the "JsCa"
and "VbsCa" commands.
I also created the "CaDebugPause()"
function.
- Improved "CaMsgBox()" so that as a
CA the "I" box has the correct icon!
- Updated "Registry" command to support
"HKCU", "HKLM" and "HKCR".
- Now include new version of PPWIZARD as it adds detection code for
infinite loops in parameter replacement.
- 04.036 (5 February 2004)
- Updated the "MsiDiff.VBS" command so "lonely"
carriage return characters are handled better.
It now also works around the MS 259 character summary read bug.
- Added the "REMOVE" parameter to the
File and Files commands.
- The new /FileComment command now
allows default file comments to be specified.
- 04.030 (30 January 2004)
- New "PerUser.VBS" tool.
- Added a /Transform parameter to "MsiDiff.VBS".
- You can now dump transforms via explorer.
Renamed the compare and dump shell extensions to
"Compare -> MAKEMSI Format" and
"Dump -> MAKEMSI Format".
These now also display the generated output in a text editor.
- Updated the binary mode of the "Registry" command
so that it can take commas or spaces (to agree with
what "RegistryImport" already generates).
- Some of the hypertext links in the generated HTML document's
source code used mixed case urls (should have been lower case).
- 04.022 (22 January 2004)
- The HTML reports summary now also displays mangled product and package GUIDs.
- Now have a "GUID Conversion" shortcut to
convert between "mangled" and MSI formatted GUIDs.
- The "Files" command now has a "NoneOK" parameter.
- If a specific sequence number was requested on the
"AbortIf" command then it was being ignored.
- Fixed the location of the "progress" text on the "PrepareDlg"
dialog.
- Added very limited support for patch files
("MsiDiff.VBS") (the issue is that very little of
a patch is in the tables as well as the MS 259 character bug on summary items).
- Now validate the rowkey identifier used on
"Binary" and "Icon" commands
(produces better error message).
- Small change to the "Build MSI via Explorer"
shell extensions to handle script file names
containing multiple "." characters.
- 04.007 (7 January 2004)
- You can now specify that MAKEMSI should ignore all merge errors generated
by the "MergeModule" command, also improved its doco
and error reporting to try to make any issues more understandable.
- The "Feature_" column in the "MsiAssembly" table was defined
as 38 characters , changed this to be 32
(now consistent with other tables).
- Default summary items tweaked in "COMPANY.MMH" so
explorer's "tooltip" supplies better/more info (at least in XP).
- You now have more flexability in the use of upgrade codes
(in "COMPANY.MMH") so you can easily have
upgrade "sets" which define which versions can be installed at the
same time versus which can't.
- Fixed bug in handling of deferred VBS custom action data
(double quotes not doubled up).
- Parameter validation on the "Property" command
improved (including earlier detection of null values - with better error message).
- Minor change to the "UISAMPLE.MMH" header to make it easier
to change "install" button text if you don't like "&Install".
- Fixed tab handling for the version file
version history information.
- 03.339 (5 December 2003)
- New "View Verbose MSI Log" explorer option.
- Now validate that any masks on the "Files" command
are not actually directories (can get confusing).
- Better parameter validation on the "Directory" command.
- Added an optional parameter to the "/Component" and
"/Feature" commands to allow for better
validation of closing tags.
- Sundry minor tweaks.
- 03.333 (29 November 2003)
- Updated the "Feature" and "Component"
commands to ensure that the "CREATE" parameter is only used
once for each ID.
- The version file product information
now supports tabs with the default tab stop being 8.
- 03.325 (21 November 2003)
- The "Binary" command now supports other
tables.
- The "MergeModule" command now supports merge
modules which don't contain any files (fairly rare).
Some more debugging aids added.
- Added the "Product" parameter and better parameter
validation to the "Icon" command.
- Modified the "FEATURE" parameter of the
File, Files and
MergeModule commands to be
consistent with others that support "." etc.
- Any GUID found in the VER file (by the "Guid"
command) now has all macros expanded.
- The default complete feature's "ID" now includes as much
of the product name and version that will fit.
This helps overcome Windows Installer event logging
deficiencies.
- The "component" information (now with GUID in tooltip),
now starts the HTML reports "Comment" column for the
"file" report, allowing sorting of this column by component.
- Merge Module related associations should now work whether
or not "ORCA" is installed.
- Better parameter validation on "Binary"
"Table", "TableCreate",
"TableDelete" and "RowsDelete"
commands.
- Now contains PPWIZARD version "03.318".
- 03.312 (8 November 2003)
- Fixed bug in the "Msi" command which would
cause a syntax error to be generated in the created VBS if the
"TEMPLATE" parameter was not used.
- 03.304 (31 October 2003)
- New "MsiExtraFiles" command.
- New "MsiValFilter" command.
- The tooltip for file entries now includes the row key.
An MD5 hash is now always generated where possible for the
HTML report even if you don't want the MSI to make use of it.
- Better error message if the generation of an "8.3" name fails
(because invalid long name was provided).
- New "LM" parameter on the Component command.
- Some basic "progress" output will be generated for long running
tasks (frequency of messages configurable).
- By default the "UISAMPLE.MMH" header now removes the
CD-KEY fields from the "AdminRegistrationDlg" dialog (although the whole
dialog is now also removed by default).
- 03.290 (17 October 2003)
- Better parameter validation on the
"File" and "Files" commands.
- Fixed error reporting bug in "compile" step.
- Improved the "Compare -> MAKEMSI Format" option.
- The "MsiDiff.VBS" command now outputs row columns
in database order and also sorts the generated table rows
(needs a bit more work).
- 03.283 (10 October 2003)
- Added a "DATA" parameter to the Adsi command.
- The default extension for a licence is now
"".licence.rtf"".
You can now also configure whether "licence" or "license" is
displayed in the licence dialog.
- Fixes some error handling issues in the generated VBS which
might in unusual situations allow the script to "plow on".
- 03.276 (3 October 2003)
- New "Registry Conversion" option.
- New "CU" parameter on the Component command.
- New "Remove" parameter on the DirectoryTree command.
- Now validate the "MsiFormatted" parameter of the
"Registry" command.
- If you tried to update a write protected MSI then this would
invoke a Windows Installer bug resulting in an infinite loop.
The read-only attribute is now reset if you are using a template
MSI else processing aborts with an error message.
- 03.269 (26 September 2003)
- Work around to a Microsoft validation bug which causes "ICE20" to fail
and prevents all following validations from occurring.
Expect to see some more validation messages.
- Better VBSCRIPT return code validation under DOS based Windows
versions (workaround to a Microsoft "command.com" bug).
- The console file generated in the "out" directory now contains the
VBSCRIPT output under NT based operating systems.
- If you allowed the File or File
commands to create components the
"FILE_EXTENSIONS_WHICH_NEED_OWN_COMPONENT" definition was not
working.
- No longer update the "MsiFileHash" table for versioned files
(produces validation errors).
- The ADSI command could not create
"IIsWebFile" objects (and probably others).
- Fixed the "DirectoryTree" command as well as some
others so that it will not fail on some directory names which include
a "." character and extensions which contained all "invalid"
characters (such as ".$$$").
- Made it easier to prevent individual (or certain groups) of
"standard" directory table entries being created in
"COMPANY.MMH".
- Newer PPWIZARD with less restrictive "#{" (loop) nesting.
- Added the "IgnoreErrors" parameter to the
MergeModule command.
- Added the "EXLIST" parameter to the File command.
- 03.255 (12 September 2003)
- Fixed the "DirectoryTree" command as well as some
others so that it will not fail on directory names such as "c++".
- Windows Installer can produce corrupt databases if a key into the
"_Streams" table
is too long, an error message is now
generated instead.
- 03.248 (5 September 2003)
- The "ServiceInstall" and
"ServiceControl" commands now report unexpected
parameters.
- Most commands updated to report an error if a parameter is used as
a PPWIZARD keyword (a relatively easy mistake).
- Added a "PrimaryFolder" parameter to the
"Directory" and "DirectoryTree"
commands.
- If you allow "COMPANY.MMH" to create a
"complete" feature then
it now by default will also set "PRIMARYFOLDER" and
"ARPINSTALLLOCATION" properties
(when this directory known).
- The "MsiSync.VBS" command now uses "ReallySuppress"
as a reboot option for the uninstall, not just the install!
- New "SelfRegister" command.
- 03.233 (21 August 2003)
- New "New -> Command Prompt (here)" explorer
option.
- The version file now fully
supports inline comments.
- Now supports a set of JSCRIPT custom action commands
(see "JsCa" etc).
Support will grow to match the VBSCRIPT set.
- Added a workaround to a Windows XP add-remove
"support information" bug (can be wider than the screen).
This should work except where comments are really long.
- Normally at least 1 file is contained in the MSI
(the HTML report), if this was disabled and there were no other
files then the compile step would fail.
- Fix to the "RunCmd" command (was completely broken).
- 03.227 (15 August 2003)
- The "destination" parameter of the "File" command
was not always performing any requested rename
(I think this broke in the 03.206 release).
- Modified the COMPILE step to work help around some
"MAKECAB.EXE" bugs/features.
- Fix "MsiDiff.VBS" generation of "time" summary
type entries so that they will work correctly when passed back
though MAKEMSI (on the same box).
- Fix to "RegistryImport" for empty
"REG_MULTI_SZ" type values.
- Fixed a minor bug in the HTML report which occurred when more than
999 files were listed.
- The "MsiSync.VBS" command now uses "ReallySuppress"
as a reboot option and displays the results of any uninstalls
and installs.
- Minor improvement to "FileFind" and
"RegistryRead" so that the message shown to users
at install time is nicer (property by default).
- Improved the title length in the UISAMPLE progress dialog to
display long product names better.
- Included new PPWIZARD with default support for
".J"->".JS" (JSCRIPT) file extensions (with syntax checking).
- 03.220 (8 August 2003)
- New "RunCmd" command which simplifies execution
of OS commands (used for "SQL" database updates etc).
- Now have associations for .MM, .MMH and .VER files.
You can now Build MSI files from explorer
(no need to open command prompt any more).
- The output from "MSIVAL2" now appears in the PPWIZARD console file
(in the "OUT" directory).
- Improved many of the
installed "right click" options to
correctly display/use the files long name.
- Improved the "Compare -> MAKEMSI Format" option so
that it now prompts for an alternative MSI to compare with
(compare no longer restricted to a defined template).
- Changed default VBS output color (ONEXIT_VBS_OUTPUT_COLOR) from
green to cyan.
Green implies "OK" and this may have confused some people when it
contained error messages.
- 03.214 (1 August 2003)
- I've got a new computer now running XP which has forced me to fix a few
issues including being forced to move to a new text editor.
I'll be configuring stuff for ages...
On the plus side as expected MAKEMSI is 4 times faster.
- Fixed a bug with the handling of the "WAIT" parameter of the
"ServiceControl" command (wait could not be turned off).
- By default history items can now refer to previously defined macro values.
Other changes to allow more flexability in altering normal source of
history items.
- New tool "MsiSync.VBS".
- Will now by default install a right click explorer option to
"disassemble" a Windows Installer database to text and to compare an MSI
to "uisample.msi".
- Increased default row validation on the "VbsCaSetup"
command (includes check for duplicate keys).
- 03.206 (25 July 2003)
- Fix to the "Errors" parameter of the "ServiceInstall"
command (if "Vital" used service would not install).
- Fix to the RegistryImport
("MSIFORMATTING" parameter unknown).
- When adding files to the "File" table no longer add an "8.3"
prefix when its identical to the "long" filename (as it is 8.3 also).
- Minor enhancement to the Path command.
- Will now by default install a right click explorer option to
view a file in Orca.
- Added or improved parameter validation on the
"VbsCa" and related commands.
- 03.199a (18 July 2003)
- Fixed some size/positioning features in the MS "uisample.msi" .
Longish product names would cause overwriting in some of
the dialogs.
- Updated "uisample.msi" (template) dialogs so by default
they are now all centered (so for example the "cancel"
dialog does not appear at the top of the screen).
- The "right click" MD5 option has been replaced with a
"Send To" facility (for WINNT, WIN2000 and WINXP).
- Some "VbsCa" CA code improvements.
- The "COMMENT" parameter of the "Files" command
can now take single quotes.
- 03.192 (11 July 2003)
- If you didn't have Windows Installer 2.0+ installed the MD5
calculation for binary files ("Binary" command)
would cause the build to fail (when 'T' for "TEST" option used).
- New "Component?" and "Feature?"
commands.
- More ICE validation related
improvements.
- Updated the "Ini" command to make it easier to
create entries some of which are in different components.
- Pulled "uisample.msi" related stuff out of
"COMPANY.MMH" into "UiSample.MMH" (defines renamed).
- Improved logging by the "VbsCa" command
(and any command making use of it).
- The final MSI validation step will
now be disabled by default
unless "MSIVAL2" is installed to the default location on the
"C:" (configuration is required if installed elsewhere).
I no longer provide this tool as part of MAKEMSI.
- 03.185 (4 July 2003)
- Created a framework for adding validations
of your own to ".CUB" databases ("ICE" type messages).
- Now include a newer MSIVAL2 (1.50.3718.000),
I suggest that you install this version (if your current version is
older).
- The value of a RowKey assigned by the "File"
command can now be obtained (you no longer need to "predict" it).
- Modified how the "attribute" type parameters on the
following commands work (making consistent):
- Improved the "MM.CMD" batch file so that its return code
is now meaningful (0=OK).
- The creation of a "Complete" feature in
"COMPANY.MMH" is now optional.
- Improved the destination directory in the "file" section of the
generated html report.
- More validation and error message improvements.
- 03.177 (26 June 2003)
- If you don't have Windows Installer 2.0+ installed the MD5
calculation failure is by default now quietly ignored.
- Modified how the "@VALIDATE" parameter on the
"Row" command works (now specifies mode and
any exclusions).
- Work around to Windows Installer error processing "feature".
MAKEMSI will now look for a suitable error template by searching
one or more "template libraries"
and if required the MSI's "Error" table.
If no template is found then a much better "default" template is
now used.
- The "COMPANY.MMH" header now defines "SystemFolder"
and other similar directory keys by default.
- The "COMPANY.MMH" header improves on the
MS "CustomizeDlg" so it looks better and it handles longer
text/descriptions.
- Fixed the "SourceForReport" command.
- Small formatting changes to "MsiDiff.VBS".
- 03.171 (20 June 2003)
- Fixed a bug in the "File" command where it could
fail if the "DESTINATION" parameter was used without a path.
- Added the "CHANGE" parameter to the "Directory"
command.
- Improved the way "COMPANY.MMH" was setting the
Add-Remove "readme" information.
- Fixed the "directory" specification on the "complete" feature in
"COMPANY.MMH".
Also added parameter validation to the "Feature"
command.
- If adding a row fails (after passing any row validation)
then the record is now dumped.
- Corrected 3 of the undocumented row validation messages.
As I found a "C" header with the required info I'm pretty sure
they are now all OK.
- Added a "reduced UI" mode to "COMPANY.MMH"
which displays the normal (large) progress dialog.
Basically a better "basic" mode (off by default).
- The "MAKECAB.EXE" report file output is now displayed by default.
- MAKEMSI can now create an external cab as well as imbedding it
in the MSI.
- Tweaked the MAKEMSI install a bit.
- A large number of smallish changes to different headers to
make them easier to tweak.
Some commands tweaked to enable future row validations to
be made "tighter".
- 03.164 (13 June 2003)
- A new "PropertyList" command.
- If you try to rebuild an MSI while it is opened by ORCA (oops)
the error is now detected much earlier and the message is more
informative.
- The "file verify" process now also examines the component state
for each file.
- More validation of the "Row" command's
"SelfRef" parameter.
- Major changes to the ExeCa command to do more
validation and to make it better and simpler to use.
- The summary at the end of a build now shows the main ".MM" files
date and time.
The HTML report and an MSI property now also contains
this information.
- Better looking "white bar" on top of dialogs,
let me know what you think...
- By default the "COMPANY.MMH" header now sets the
"REINSTALLMODE" property to "amus".
- A probable workaround to an incorrect I/O error report on a
"Licence" file if "#include" used!
- 03.157 (6 June 2003)
- Added workaround to a Windows Installer bug which affected the
verify "remove" and "repair" dialogs
(causing the text to overwrite itself and becoming unreadable).
- The "Files" command no longer requests the
"DestDir" parameter when not actually required.
The "DestDir" parameter processing improved when a dir KEY
(rather than path) was supplied.
- Improved the "file verify" process to work in more situations.
The destination directory in the html report should now always be
"expanded" as far as possible in the same circumstances.
We now also display some product state information.
- The "where" clause on a "Row" command can
now be "" (for all records).
- 03.151 (31 May 2003)
- The "File" and "Files" commands
improved to ensure that they never generate invalid rowkey
identifiers (no matter what characters are in the filename).
Also fixed a related CAB issue where valid file keys were not
allowed to differ only by case.
- If a "Row" command fails to validate
(see "@Validation" parameter) then the row's contents
are now also dumped.
- Fix for the "ComPlusApp" "USER" parameter
and many other improvements (big and small).
- Added "rollback" and "commit" parameters to
VbsCaSetup and ExeCa.
- Bug fix to ExeCa
(it was failing if exe run from filesystem rather than binary table).
- Implemented a workaround to a Windows Installer (2.0+) bug
which affected the "DialogPreview" command.
- Got rid of one of the error messages (the "/Q" message)
when run under WIN95, WIN98 or WINME.
- 03.148 (28 May 2003)
- The handling of the "Target" parameter of the
"Shortcut" command improved to hopefully cover
"all bases" (MS shortcut doco misleading and wrong).
- The "Level" parameter of the "Feature"
command now supports an optional single condition.
- The "left side" bitmap on "Welcome" and some other screens now
hopefully looks better while still being small and scaling well.
- Made a start with some basic
"Platform Definition"
support.
- 03.133 (13 May 2003)
- Improved the "Licence" dialog removal code and it now removes
the user registration dialog by default.
- The look of the setup dialog improved when the "Typical"
button is removed.
- Modified the "AbortIf" command to set up a
launch condition if no sequence number passed.
- Modified "RegistryRead" and
"FileFind" commands to display error messages
earlier when user interface enabled.
- Updated the "Row" command so that it can handle
a "@WHERE" parameter containing double quotes.
- Minor schema update for MAKEMSI's "cab" table (make name longer).
- 03.129 (9 May 2003)
- Major changes to the way the
version file is handled.
The main change is how product information is defined
(valid keywords and defaults etc).
The "MsiName" parameter now defaults to creating an MSI filename
which ends with the product's version number.
- Changed "OPENMSI.MMH" to make it easier for users to make changes
to existing MSIs.
There is now a sample in the doco.
- By default the "Typical" button is now hidden when it does not
differ from "Complete" (the complete button is renamed "Install").
- Added file size and date/time to dialog displayed by
"MmMd5.VBS".
- Added "Message" parameter to "RegistryRead" and
"FileFind" commands.
Windows Installer seems to need the "Signature" table even when
not used, now created if "RegistryRead" used.
- By default if you create the
"MakeMsi_SAMPLES"
environment variable then your "sample" code will be copied to
this location.
- 03.126 (6 May 2003)
- Improved the Shortcut command so that it can
take a property as the target and now create an 8.3 shortcut name
if none supplied for the "Title" parameter.
- Fixed naming of FileFind command.
- Fixed some MAKEMSI install issues.
- By default the "UISAMPLE.MMH" header now removes the
CD-KEY fields from the "UserRegistrationDlg".
- 03.124 (4 May 2003)