This article discusses:
Windows Installer XML Overview
Create WiX Packaging instructions
Integrated WiX and MSBuild
Automate build and package
This article uses the following techniques: Visual Studio, Windows Installer XML (WiX), MSBuild
Directory
WiX Introduction
Creating WiX files WiX and msbuildmsbuild batch processing automate build and package analysis MSBuild scripting Overview Customizing Process Summary
In the development process, it is important to have an automatic generation process. It is also important to have the means of automatically creating a publication. Unfortunately, in many organizations (especially smaller organizations), there is no such. Typically, you will find that the publication is only pieced together at the last minute. However, if you take the time to set up an automated build and publish plan, you save countless hours, and you can better use those times to accomplish tasks rather than build and publish projects.
In this article, I'll describe how to implement an automated and repeatable build and publish process in your organization using the Microsoft®build Engine (MSBuild) and Windows®installer XML (WiX) toolset. This article discusses WiX v2 (note that some syntax samples are not directly converted when WiX V3 is published). Although WiX does simplify the process of creating a publication, whether or not you use WiX to create a publication, the techniques described in this article are available for your reference. You can also make some modifications to these technologies and apply them to applications that are not developed using Microsoft. NET Framework 2.0 (This article also contains links to English web pages).
I will assume that you are familiar with MSBuild (if you need to get a new look at it, see my article in the June 2006 Msdn® magazine for an in-depth look at MSBuild: a custom task that compiles an application in its own way through a Microsoft build Engine). I will provide an overview of the WiX toolset for those who are unfamiliar with the tool. See the sidebar "MSBuild and WiX resources" for references to more relevant articles and tools. For the purposes of this article, I will use my Sedodream MSBuild project. You can get the latest source code from Www.codeplex.com/Sedodream.
WiX Introduction
When you create an application, the final result is to install and run it on the production computer. The WiX toolset can help you accomplish this task. In this section, I'll describe WiX and explain how to use WiX to create an installer.
WiX describes what the installation looks like on the target computer. From Visual studio® to Microsoft Office, Windows Installer is used in many Microsoft applications. You may be surprised to find that WiX is actually an open source project and is hosted on SourceForge.net. You can download the latest binaries and source files from Wix.sourceforge.net. After you download and install WiX, you will find that a large number of executables are installed on your computer, as summarized in Figure 1. I will focus on the use of Candle.exe and Light.exe tools.
Figure1wix components
name |
description | /tr>
candle.exe |
|
dark.exe |
> turn MSI file Swap to the appropriate WiX source file (which can be considered a "decompile" installer). |
light.exe |
from WiX source text The middle representation of a piece generates Windows Installer. |
lit.exe |
|
tallow.exe |
for creating the Wi X source XML to copy the files and folders it has in the installation directory or file. |
wixcop.exe |
check WiX There is a dive in the source fileIn the area of the problem, similar to FxCop. |
WiX uses declarative language rather than procedural language, which means you want to describe what your installation will look like without describing the steps you need to take to implement it. This may be different from your habits, but it's very easy to master. Typically, a description file to be installed on the target computer populates the WiX source file. Here, I will focus on these components.
In the WiX source file, there are three key elements associated with the files you want to install: files, components, and features. A file element is a reference to a single file. The file must be included in the component element, and the component element is the smallest installation unit. That is, if you have a component that contains 100 files, and you want to install the component, all of the files it contains are installed. Conversely, if you do not install the component, no files are installed. It is not recommended to create a component that contains a large number of files.
Components are always included in the feature element and can be included in multiple functions. A feature is a set of components, or it may be a set of child functions. If the installer has a graphical interface that allows users to choose which items to install, the user is actually selecting the feature.