Windows Installer
 
Unrestricted access to Windows Installer functionality!
 
Open Source
 
Open source!
 

<xml/>

 
Plain XML based source scripts!
 
Free
 
Free, no strings attached!
 
Build Automation
 
Command-line interface for automated application build process!
 
Community
 
Thriving community support!
Why WiX?
When should I use a deferred instead of an immediate custom action?

Deferred custom actions should be used when the custom action must make a change to the system or call another system service. Additionally, only deferred custom actions can run in an elevated context. If your custom action requires elevated privileges in order to run, your custom action needs to be marked as deferred.

Custom actions marked to run in the system context will only run in the system context if the installation itself is elevated.

Additionally, when making a change to the system by means of a custom action, you should also include a rollback custom action that can undo the change.