In order to understand how WiX works, we must define some basic setup and WiX terms:
Windows Installer A feature of Microsoft Windows that defines and manages a standard format for application setup and installation and tracks components, such as groups of files, registry entries, and shortcuts. (Note: The extension for the installer files is "MSI" because the original name of the tool was the "Microsoft Installer" but the marketing team chose another route and called it the "Windows Installer.")
Windows Installer XML (WiX) A toolset that builds Windows installation packages from XML source code. The toolset provides a command-line environment that developers can integrate into their post-build processes to build setup packages.
WXS files The files that WiX uses to create setup packages. Most setup components have one or more of these files.
CABinet files (CAB files) Files that store compressed files in a file library. A single compressed file can be spread over several CABinet files. During installation, the setup application decompresses the files stored in the CABinet(s) and copies them to the user's system.
Stock Keeping Unit (SKU) A term borrowed from the manufacturing world to refer to a different variation of a product, such as Office Standard, Professional, and Enterprise. Each variety is considered an SKU. The different language of each product is also an SKU. A unique number is usually assigned to each SKU, which is often represented by a bar code.
SKU.XML file This file outlines what a setup command script will do. (See the sample file later in this chapter.)
Setup component Set of files, registry keys, services, UIs, custom actions, and so on that you must use to get a standalone piece of setup working.
Setup SKU A setup package that you can install on a given machine. Another way to define this is as a product that you can install that shows up with an entry in the Add/Remove programs list.
BinPlace tool BinPlace.exe is a tool for managing large code projects and moving executable files, symbol files, and any other type of file. It can also extract symbols from an executable file and remove private symbols from a symbol file. BinPlace is useful if you are building several modules and delivering them in a variety of packages. You can get the BinPlace tool free by downloading the Microsoft Driver Development Kit (DDK) located on MSDN (www.microsoft.com/whdc/devtools/ddk/ddkfaq.mspx).