Windows Installer XML (WiX)
Raycomm are a UK based, custom software and electronics design and development service
company creating bespoke electronic products, mobile device software applications,
backend web server software and e-commerce database software.
The Windows Installer XML (WiX) is a toolset that builds installation packages from
XML source code. It supports a command line environment so can readily be integrated in
to build processes to build MSI and MSM setup packages. WiX currently has a stable 2.0
release and a version 3.0 is in development which modifies and adds new features to the
core toolset.
There is also a Visual Studio Package for WiX (Votive) that lets you create and build
WiX setup projects using the Visual Studio IDE. Votive supports syntax highlighting and
intellisense for .wxs source files and adds WiX setup project type to Visual Studio.
This software is released by Microsoft under an open-source license called Common
Public License. Rob Mensching is the original author and lead developer of WiX, he works
on WiX in his spare time and is a Microsoft Employee. Microsoft use WiX internally to
build a lot of their more complex installs such as Microsoft Office. It is also used by
a number of the well known open source programs such as MySQL to generate their Windows
installs
The WiX toolset is composed of several components. The names derive from a play on words
on the wick(s) (WiX) of a candle.
Candle
Candle is the compiler used to compile the XML documents to object files that contain
symbols and references to symbols.
Light
Light the linker takes one or more object files and links the references in the object
files to the appropriate symbols in other object files. It also collects all the
binaries, packaging them appropriately and generating the final MSI or MSM file.
Dark
Dark is a decompiler which takes an existing MSI and MSM
file and generates XML documents that represents the package. This allows you to convert
an installer created using different install software such as Install Shield or Visual
Studios default install builder and create a WiX project.
Tallow/Heat
Tallow is a tool for generating WiX filelist code by traversing a directory tree of files. It produces a WiX fragment
which can be incorporated with other WiX files at compile time. This is useful for automating the build of an installer
that has a complex file structure of changing files. In WiX 3.0 a more general tool has been created called Heat. There
is also an alternative to Tallow called Mallow that adds synchronisation and improved component ID generation.
Extension Guides
In addition to allowing the user to generate a fully controlled installer WiX offers a
number of extension guides that help with different aspects of install creation by
providing custom actions and dialogs. The ones currently available are:
- UiExtension for standard dialogs
- NetFxExtension Handles the detecting and installing of versions of .NET
- SqlExtension
Handles creating SQL Server databases and running SQL scripts
- IIsExtension
Handles configuring Internet Information Services
- DifxExtension for driver installation
- UtilExtension
several unrelated custom actions like EventSource, perfCounter, permissions etc.
- VsExtension for installing help collections into Visual
Studios Help System
- OfficeExtension
for installing MS Office Add-ins
- IsolatedAppExtension
part of ClickThrough
Raycomm has experience of building installers for a range of applications. They have
been using WiX since it original release in 2004 when they found the limitations of the
Visual Studio Installer prevented the completion of their complex installer impossible.
Since then they have developed a number of installers using the WiX environment.
Building applications that will install successfully across a range of Windows versions
is not simple, requiring testing against each installation and often requiring different
installation rules for each environment. Raycomm make extensive use of Virtual PC to
create sample test environments for each operating system that the installer is targeted
for so that the installs are fully tested.
All applications supplied by Raycomm (including drivers) can be supplied with custom
installers tailored to the customer’s exact need.
For a no-obligation discussion with one of our senior consultants on your project needs:
- Call us on +44 (0) 1275 847553
- or fill in our
Enquiry Form
- or email us using the link at the top of the page
We look forward to hearing from you.
|