Wednesday 18 February 2009

MSI 5 Comes to town

There is a new game in town for us "application installation" guys.  When Microsoft released Vista we got to play with a new version of MSI installer (version 4.0). And with the release of Windows 7, we get to play with release 5.0 of the "Trusted Installer" MSI Installer.


At first I was a little surprised that we were going to see a full version change to (from 4.5 to 5). This thinking was based on a slightly prejudiced notion that Windows 7 is not really a full version upgrade from Vista. More specifically, from the knowledge that I have about the Windows 7 kernel changes with respect to Vista - I was thinking that Windows 7 should actually be called Windows 6.5 and the MSI Installer update should be called 4.8. Or something like that.


However, on further thought, I was wrong.


Have a look at Microsoft's upgrade schedule for the past 5 major release of Windows (found here:)


There has been four updates to the MSI Installer in the past two years; two major upgrades with Service Packs and two minor updates (including the redistributable updates).


And to be fair, there is enough changes to Windows 7 now to warrant a new, full version update. It was a learning curve for me - and a somewhat humbling experience - as I have now begun my journey discovering ALL of the massive number of changes and improvements on Vista.


So, here we go; version 5 of Windows Installer.


You can find the release information here:


You can only get the MSI Installer update by installing Windows 7. And due to the fact that the changes to MSI Installer only relate to Windows 7, there are currently no plans to back-port MSI Installer 5 to support Vista, nor to create a redistributable for support for any operating systems prior to Windows 7.


There is a curious new feature included with MSI 5; the Per-User-Application or PUA. As stated by the Microsoft MSDN documentation;


"Setup developers can use Windows Installer 5.0 to author a single installation package capable of either per-machine installation or per-user installation of the application. "




"An application capable of being installed, updated, run, and removed by a standard user without elevation is called a Per-User Application (PUA.)"


You can find out more about the new PUA here:


And, for you Installer heads out here... There are five new Internal Consistency Evaluator (ICE )checks for you to enjoy...


  • ICE101        Checks that no value in the Feature column of the Feature table exceeds a maximum length of 38 characters.
  • ICE102        Validates the MsiServiceConfig and MsiServiceConfigFailureActions tables.
  • ICE103        Validates the MsiPrint and MsiLaunchApp control events.
  • ICE104        Verifies the MsiLockPermissionsEx and LockPermissions tables.
  • ICE105        Validates that the package has been authored to be installed in a per-user context.


The ICE error descriptions and definitions can be found here:

No comments: