Updates are discovered, downloaded and verified to be intact and from the original publisher. Only then can an update be executed. To execute an update package, the Update Controller component initiates the process by communicating with all instances of the hosting application and requesting a shutdown. Implementers can handle the UpdateStarted event of the Update Controller to perform any necessary actions prior to shutdown, such as prompting to save work. The update can also be cancelled from that event. Once the instances have been shutdown, the initiating instance extracts and executes an Update Launcher.
The Update Launcher initiates the update process and then waits until the updating executable completes its work. After the update is complete, the hosting application is launched in its updated state.
The executable that actually performs the update is determined by the Make Update project. It can be either a Microsoft Installer file, a custom created executable, or it can be an AppLife Update Action List executable. The best method to use is dependent on the type of application being updated and the preferences of the developers.