New installer entrant is programmatically extensible.
ActiveInstall is a new and spiffy entrant into the Windows Installer
category. The ActiveInstall developers have gone to a great deal of effort
to wrap up the setup development world in a modern IDE (it looks and works
much like the Visual Studio .NET IDE, though it's actually an independent
application), and to expose all of the power of Windows Installer while
hiding the raw database tables that it depends on.
If you just want to build a simple setup application, things are pretty
simple. Create a new project, set a few text strings, drag the files you
want to a target directory, and you're done. Validation is performed as
you work (rather than being a separate step, though you can also choose
to validate the entire MSI database at any time), and when you're done
you can build, test, and run the resulting setup application. From there
you can use built-in editors to customize everything: registry settings,
document associations, COM and ODBC resources, custom actions during setup,
you name it.
ActiveInstall itself is an extensible application. It includes VBA for
macro and customization programming, and includes a COM add-in architecture
as well. The guts of ActiveInstall are also exposed as COM objects in
case you'd like to drive it as part of an external build process from
some other host. Imagine, for example, that you wanted to be able to churn
out custom setup files with embedded license information on a per-customer
basis; you could use Visual Basic to write a tool to slam the settings
into ActiveInstall and perform the build, without ever opening the IDE.
There's also SourceSafe integration (though the entire ActiveInstall file
is checked in as one monolithic blob).
ActiveInstall includes some additional tools that go beyond simple setup
authoring. These include a wizard to generate transform files, a patch
builder, another wizard to export merge modules (which you can then pick
up and use in further setups, of course), and an "MSI Comparator", which
lets you perform a diff operation on a pair of Installer files to see
The program easily handled the test cases I threw at it, including the
ability to create a self-repairing installation and the ability to install
a .NET assembly to the Global Assembly Cache. If you're ramping up on
a new project that will use Windows Installer technology, and you need
to find the right tool for the job, this one definitely belongs on the
short list of candidates to evaluate.
Mike Gunderloy, MCSE, MCSD, MCDBA, is a former MCP columnist and the author of numerous development books.