AppLife Update provides full update creation, distribution, and application features. You can use the AppLife Update engine, Windows Installer (MSI), or your own custom executable to perform updates of your software. Using the AppLife Update Engine, you can publish updates that your deployed software will find, download and execute. The AppLife Update engine can perform any actions necessary to transfer your deployed software from one version to another securely and reliably. It includes public-private key encryption validation, support for elevated privileges, auto proxy detection, and automated update creation.
It is very flexible yet still simple to use. The API docs made it pretty easy to build a custom action to update my application database. The ability to make my update package and publish it at the click of a button has made my old 20+ step written procedure unnecessary.