Windows Installer Engine

The Windows platform has never had an integrated software-installation system. Instead, software developers have been responsible for creating their own installation routines  or Scripts

To  copying data (Simple File Copy)
To  add registry Entries
To register component (COM)
To Create Shortcuts (Shortcut Shouldn’t be created on Desktop, Validation to vista Logo certification would show ICE Error)
COM+ run by application server
Adding Assembly

What is Assembly ?

Assembly is executable information with Policy defined on How it should be executed

The Windows Installer (previously known as Microsoft Installer, codename Darwin) is an engine for the installation, maintenance, and removal of software on modern Microsoft Windows systems. The installation information, and often the files themselves, are packaged in installation packages, loosely relational databases structured as OLE Structured Storage Files and commonly known as "MSI files", from their default file extension. Windows Installer contains significant changes from its predecessor, Setup API. New features include a GUI framework and automatic generation of the uninstallation sequence. Windows Installer is positioned as an alternative to stand-alone executable installer frameworks such as older versions of InstallShield and Wise (later versions of both products are based on Windows Installer) and NSIS.

Microsoft encourages third parties to use Windows Installer as the basis for installation frameworks, so that they synchronize correctly with other installers and keep the internal database of installed products consistent


Diagnostic logging

Windows Installer supports logging can be enabled in the following ways:

  • Command-line: If installing an MSI package from the command-line, the /L switch can be used to enable logging. For example, the following command installs Package.msi and outputs verbose logging to c:\Package.log:

msiexec /i Package.msi /l*v c:\Package.log

  • Windows Registry: The following registry value can be used to enable verbose logging:

Key: HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows\Installer

Value Name: Logging

Type: REG_SZ

Data: voicewarmup

The resulting log is named MSI###.log (where "###" is a unique random identifier) and is placed in the user's Temp directory (the 'temp' directory location is per-user, and is pointed to by the environment variable %temp%).