This project has moved and is read-only. For the latest updates, please go here.

Quick Introduction

May 1, 2010 at 1:42 PM
Edited May 1, 2010 at 6:08 PM

IsWiX used to have a summary user manual but the branding didn't allow for it to become publically available.   Until I have a chance to write up official documentation again, I wanted to give a quick explanation of how this tool is currently intended to be used.

IsWiX is meant to be used with Visual Studio 2008/2010 and Votive 3.0/3.5.   The concept currently is to create merge module projects using Voitve and then add the SourceDir environment variable to point to the root of where files are allowed to be consumed from.   From there you will find a  IsWiXAddin menu item under Tools.  The concept is similar to the WCF Service Configuration Editor.   Selecting the IsWiXAddin menu will send the current WXS document to IsWiX where you can then manipulate it.   Once you save and close, visual studio will offer to reload the document.  Then you can build your merge module using Votive.  Additionally I tend to keep my .NET and Merge Module projects in two different solutions.  I like to get my .NET to drop it's files to a common location and then point my merge modules to that location.  An example of SourceDir is shown below.

The various File New, Open, Save As is mainly for completeness or in case you don't want to use Votive.   The main story is through Votive.

So in summary, this is a very light weight editing tool that has the intention to grow over time.  For now the feature set is fairly narry.  The current focus was on creating hashed and sorted documents that easily supported complex branching and merging scenarios.

<?xml version="1.0" encoding="UTF-8"?>
<Wix xmlns="">
  <?define SourceDir="..\deploy"?>

May 1, 2010 at 1:49 PM
Edited May 1, 2010 at 7:28 PM

Three additional points:

1) If you use IsWiX to create a Directory/Component/File for say  FooService.exe, you can then manually add additional meta such as ServiceInstall and ServiceControl elements.  While IsWiX won't currently understand that meta, it will persist it so long as you don't remove FooService.exe from the wxs file.

2) Component authoring is currently opimpized for a large number of files and major upgrades.   Program Executable type files will be authored as one keyfile per component but non-versioned files will be authored as all files in one directory per one component with the directory being key.  A future version will allow the promotion of companion files to key status.

3) IsWiX is based on the Fireworks Application framework.  This allows others to write Designers that implement the IFireworksDesigner interface.  At runtime IsWiX will refect the assemblies in the application directory looking for designers that apply to the WiX schema.   These designers then use the LINQ to XML DOM ( XDocument class ) to manipulate the .wxs document in memory.  In this way it is hoped that IsWiX will be very extensible.