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
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
Windows Installer supports logging can be enabled in the following ways:
- Command-line: If installing an MSI package from the command-line, the
/Lswitch can be used to enable logging. For example, the following command installs Package.msi and outputs verbose logging to
msiexec /i Package.msi /l*v c:\Package.log
- Windows Registry: The following registry value can be used to enable verbose logging:
Value Name: Logging
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%).