The adoption of managed software often required organisations to adopt standardised interfaces on software packages. This recognises that every piece of software may have a number of actions to ensure that a "piece" of software is installed (or removed) correctly. Large organisations will try to use MSI installers with Transforms wherever possible but there are often times when it's not possible to package everything within an MSI.
Sometimes an approved "package" will need approved patches to also be installed. Vendors will use Bootstrap launchers that must be used instead of just using MSI's - think of Creative Suite or Microsoft's Office. As there will always be a plethora of procedures for installing different pieces of software complexity must either exit within the deployment database or complexity is managed within an application package and standardised interfaces are presented to the deployment system for the install and removal of software.
The Launcher provides a standard interface to deployment systems by running xml based sequences for installing and removing software based on its included configuration XML files.
Another common need of a Launcher or "shim" is to make sure that the targeted machine doesn't contain earlier version versions of a product that would cause an an MSI upgrade scenario to run.
- In a managed environment, testing almost always is conducted in a clean environment... trying to accommodate the various results of installs on top of upgrades is a nightmare in black-box testing.
- Many large organisations would use vbscripts or batch files to attempt the uninstall of string of ProductCodes prior to a package being deployed.
- The Launcher allows for custom ProductCode removal to occur as part of the installation sequence for a package... it also has it's own logic for removing products from the machine.
The Application Launcher will automatically create Windows Installer logs under "C:\Windows\Logs". If installations are successful, logs are replaced with a signature file containing details of the account used to install the product along with the time of the install.