Windows Installer 3.1 Redistributable Available

Windows Installer 3.1 is now available as a redistributable from the Microsoft Download Center. Among the changes are support for MSIs targeting x64 platforms, which I described in a previous blog entry; some fixes for source resolution problems; and opt-in behavior for flyweight patching, which would’ve been a major burden for the Customer Product-lifecycle Experience team (CPX; that’s us). The problem is that flyweight patching – or optimized patching – causes certain standard and custom actions not associated with one of the tables below to not execute if only any of the tables below are changed. This is a problem for CPX for several reasons, among them fixing issues in the machine.config and security.config files that we don’t want to replace entirely by adding them to the File table and CABs. Our custom actions that modify those files would not be executed if the only tables that were changed were from the list below.

  • AdminExecuteSequence
  • AdminUISequence
  • Condition
  • CustomAction
  • File
  • FileSFPCatalog
  • InstallExecuteSequence
  • InstallUISequence
  • Media
  • MoveFile
  • MsiAssembly
  • MsiDigitalCertificate
  • MsiDigitalSignature
  • MsiFileHash
  • MsiPatchHeaders
  • Patch
  • PatchPackage
  • Property
  • Registry
  • SFPCatalog
  • TypeLib
  • _Columns
  • _Storages
  • _Streams
  • _Tables
  • _TransformView
  • _Validation

Because Windows Installer is a runtime, any MSI packages that were authored for MSI 3.1 but use a lower schema version (like 200, to enable support on Windows 9x/Me like CPX must for .NET Framework patches) can be affected by this problem. For this reason, and for other fixes and features listed in KB893803, it is recommended that you upgrade your system to Windows Installer 3.1 if you meet the system requirements.