I've just committed a new version of the Ant task for the WiX toolkit to Apache's subversion repo. The former version never worked since I forgot to add a few setters. I never claimed I had tested it anyway ;-)

This time it is tested and to prove it, I've added a target to Ant's own build file that uses it. If you have WiX and the .NET Antlib installed, you can now create an MSI installer package for it. No other software required.

This is how it looks:

    <dn:wix target="${msi.file}"
      mode="both" wixHome="${wix.home}" wixobjDestDir="${wixobj.dir}">
      <sources dir="src/etc" includes="*.wxs"/>
      <moresources dir="${dist.dir}"/>

      <candleParameter name="dist.dir" value="${dist.dir.resolved}"/>
      <candleParameter name="version" value="${manifest-version}"/>
    </dn:wix>

This will create the MSI file using the .wxs descriptions in src/etc, skipping the task if the files in dist.dir haven't changed. The task combines candle and light but you can run them separately if you want to.

Writing the .wxs files turned out to be more cumbersome than I thought - in particular if you have several hundred HTML files of Javadocs to add. I'll have to sit down and write a task that does the equivalent of tallow (which isn't documented in the official manual, see this part of Gabor's excellent tutorial instead), but in a way that makes the resulting fragment more predictable (and valid, in the first place). I ended up running tallow and modifying the result manually.

I haven't even tried to create a UI for the MSI package, but it should be doable with the task as it is.

path: /en/Apache/Ant/dotnet | #