Mohammed Atef’s Technical blog

WIX Introduction

What is WiX?

WiX is a set of tools and specifications that allow you to easily create Windows Installer database files. The WiX tools model the traditional compile and link model used to create executables from source code. For WiX, source code is written in XML files. These files are validated against a schema, wix.xsd, and then processed by a preprocessor, compiler, and linker to create the desired result. WiX has been designed to allow for the easy creation of multiple Windows Installer databases from a small set of source files. You can use WiX both on the command line and in the Visual Studio development environment.

File Types

There are many file types in WiX that are generated from different tools in the toolset. At the highest level, all input files and intermediate files for WiX are XML files. The output is in the form of standard Windows Installer database files.

Let’s go quickly to see all WIX file Types

Extension

Type

Description

.wxi

WiX Include File

A .wxi file is analogous to .h files for C++. The root element of this file is <Include>. Everything under the root element will be inserted inline when this file is included in another source or include file.

.wxl

WiX Localization File

A .wxl file contains a set of strings used for localizing a product into a specified culture. The root element of this file is <WixLocalization>. The culture is specified by setting the Culture attribute on the <WixLocalization> element.

.wxs

WiX Source File

A .wxs file is analogous to a .cpp file for C++. The Root element of this file is <Wix>.

.wixobj

WiX Object File

A .wixobj file is created by the compiler for each source file compiled. The .wixobj file contains one or more sections that, in turn, contain symbols and references to other symbols.

.wixout

WiX XML Output File

A .wixout file is created by the linker which represents the result of linking a set of object files. The .wixout is an XML representation of the final output.

.wixlib

WiX Library File

A .wixlib file is a library of setup functionality that can be easily shared across different WiX-based packages by including it when linking the setup package.

.wixpdb

WiX Debug File

A .wixpdb file is created by the linker for each final output. It contains the debugging information.

.wixmsp

WiX XML Patch File

A .wixmsp file is the XML output generated by linking object files in a patch build.

.wixmst

WiX Transform File

A .wixmst file is an XML representation of the difference between a pair of final outputs or XML outputs.

.msi

Windows Installer Installation Package

An installation package file (.msi) is the basic unit of installation for the Windows Installer.

.msm

Windows Installer Merge Module

A merge module file (.msm) is used to share setup logic across different .msi packages. A merge module can be created by one development team, then merged into another development team’s .msi package..

.mst

Windows Installer Transform

A transform file (.mst) is used to apply changes to an .msi file.

.pcp

Windows Installer Patch Creation Process

A patch creation properties file (.pcp) is used as an input to the patch building tools provided in the Windows Installer SDK.

 Structure of .wxs files
All .wxs files are well-formed XML documents that contain a single root element named <Wix/>. The rest of the source file may or may not adhere to the WiX schema before preprocessing.
The root <Wix> element can contain at most one of the following elements as children: <Product>, <Module>, and <Patch>.
It is important to note, that there can be only one <Product> or <Module> or <Patch> section element per source file because they are compiled into special sections called entry sections.
Symbols and references
Every symbol in an object file is composed of the element name plus the unique identifier from the “Id” attribute. Symbols are important because they can be referenced by other sections from any source file.
Structure of the .wixobj file
A .wixobj file is created by the compiler for each source file compiled. The .wixobj file is an XML document that follows the objects.xsd schema defined in the WiX project.
Now I think you have a good overview about WIX.i will write some series of articals for WIX and waiting you comments.

I hope this help.

Advertisements

April 12, 2009 - Posted by | .Net 2010 | , , , ,

1 Comment »

  1. […] tool. It is WIX,see i will post series of artical about WIX. so lets see the list of  WIX Posts 1- WIX Introduction 2- WIX Tools 3-Using WIX on the command Line 4-Using WIX in Visual Studio 5- Using WIX with MSBuild […]

    Pingback by Windows Installer XML 3.0(WIX) « Mohammed Atef’s Technical blog | April 12, 2009 | Reply


Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: