We have a NAnt build script that is used manually and via CruiseControl.NET to automate builds. This runs miabuild.exe and works perfectly when run manually by a user - it doesn't work however when controlled by CruiseControl.NET, a failure is reported at almost the very end of the process:
[exec] Copied assembly <...>
[exec] Created Windows Installer database
[exec] Built installation executable
[exec] Injected default setup language
[exec] Error during build: Unable to build runtime files: Archive handler not installed
Anyone have any idea what "Archive handler not installed" means?
That's an interesting report. I understand the archive handler is the part of InstallAware that utilizes supreme compression. It is extracted dynamically on-the-fly and registered with the system if it is not already found to exist. This process involves creating some registry keys and copying a couple of files. All of this is already done for you by the time you first launch the IDE, and the only exception would be if NAnt/CruiseControl.NET are running under a different user account. I believe this would be the cause of the problem here. Just log on under that user account, run the build process manually from the command line, that should create the registry keys and copy the archive handler files. From then on it should work well with NAnt/CruiseControl.NET. We have users who are successfully using NAnt (in fact one recommended it on these forums to other users), so you can try pinging them as well - I imagine they might have run into this issue before.
Michael Nesmith
Install[b]Aware[/b]
[i]Home of The Next Generation MSI Installer[/i]
Get your free copy today - http://www.installaware.com/
Yes that seemed to be the problem, amending the CruiseControl.NET service to run as a user who had previously run the IDE instead of the local system fixed the problem.
Would be useful if this was mentioned in the readme somewhere. We think perhaps we might use regmon and filemon to work out what the changes are so that we can avoid this configuration step in future.