PacktLib: WiX 3.6: A Developer's Guide to Windows Installer XML

WiX 3.6: A Developer's Guide to Windows Installer XML

Credits

About the Author

About the Reviewers

www.PacktPub.com

Preface

Getting Started

Introducing Windows Installer XML

Your first WiX project

Adding a user interface

Viewing the MSI database

Turning logging on during installation

Other resources

Summary

Creating Files and Directories

The File element

The DirectoryRef element

The ComponentGroup element

The Fragment element

Harvesting files with heat.exe

Copying and moving files

Installing special-case files

Installing 64-bit files

Creating an empty folder

Setting file permissions

Speeding up file installations

Summary

Putting Properties and AppSearch to Work

Custom properties

Predefined Windows Installer properties

AppSearch

Summary

Improving Control with Launch Conditions and Installed States

The syntax of conditions

Action state

Installed state

Summary

Understanding the Installation Sequence

InstallUISequence

InstallExecuteSequence

Custom actions

Rollback custom actions

Accessing properties in a deferred action

Adding conditions to custom actions

Deployment Tools Foundation

Summary

Adding a User Interface

WiX standard dialog sets

Creating your own dialogs

Modal windows

ICE20 revisited

Summary

Using UI Controls

Attributes common to all controls

Specific control syntax

Summary

Tapping into Control Events

Publishing control events

Subscribing to control events

Publish events

Subscribe events

Summary

Working from the Command Line

Candle.exe

Compile-time variables

Conditional statements and iterations

Preprocessor extensions

Light.exe

Link-time variables

Building an installer without Visual Studio

Summary

Accessing the Windows Registry

Reading from the registry

Writing to the registry

Removing registry values

Copying registry values

Registry permissions

Summary

Controlling Windows Services

Creating a simple Windows service

Using sc.exe

Using WiX to install a service

Starting, stopping, and uninstalling a service

Setting the service's user account

Adding service dependencies

Service recovery with Util:ServiceConfig

Summary

Localizing Your Installer

WiX localization files

The role of Light.exe

Setting language and code page attributes

Localizing the UI

Creating a multi-language MSI

Summary

Upgrading and Patching

Planning for updates

Preparing a major upgrade

The minor upgrade

The small update

Summary

Extending WiX

Building a custom WiX extension

Using the extension in a WiX project

Tying a custom action to the custom element

Summary

Bootstrapping Prerequisites with Burn

Using the Bootstrapper Project template

Describing the Bundle element

Restricting the install by the operating system

UpgradeCode and detecting related bundles

Chaining packages

Downloading packages

Counting package references

Rollback boundaries

PackageGroups

The Standard Bootstrapper UI

Summary

Customizing the Burn UI

Burn extension points

Creating the class library

Extending the BootstrapperApplication class

Defining the model

Implementing the viewmodel

Marking up the view

Referencing the UI in a Burn bundle

Passing user input to a bundled MSI

Displaying progress

Downloading packages

Collecting command-line arguments

Summary

Index