<p>There are lots of tools for creating installers on Windows (InstallShield, InnoSetup, NSIS, just to name a few). All tools I've seen fall in one or both of these categories</p>

<ul>
<li>Point-and-click. Nice GUI for creating the installer, but the installer definition/project file can not be manually edited.</li>
<li>Textfile: No (official) GUI. The installer is compiled from a definition in a text-file which is manually edited.</li>
</ul>

<p>The installers I'm building are all defined using a DSL (represented as YAML files), so using a GUI is out of the question, and creating is textfile is cumbersome although doable.</p>

<p>What I really would want is a tool which exposes a (complete) API, through which I can control the creation of the installer. Are there any such tools out there?</p>

<p>Edit: I'd love to hear about non-MSI based tools as well. MSI is not a requirement (rather the other way around...)</p>

Wix 3.0 beta
has .NET support included for this purpose. I don't know how well it works but it includes documentation. It's a framework of types for manipulating the installation creation process and all that goodness, so I don't think you even need to write a line of WiX XML if you don't want to.