WixDrip

WixDrip

From TeleFlow

Jump to: navigation, search

WixDrip complements the WiX installer to make it easier to create a large WiX installation. Drip stands for "Directory Rip", and uses Tallow.exe to define and create Fragments and associated Components based on sub-directories in a project source. The assumption is that the first level directories in your project's source directory are ready to become Components in several features. This program is intended to help you quickly gather files for Projects that would be unwieldy to do manually. It uses Tallow's ability to create properly formatted XML, and then adjusts and saves it in fragment files alongside your main WiX Project file.

This environment is not intended to be a Project Management environment. It could save you many many hours if you have a lot of files to gather. It is also a good training tool to see how Fragments are formed, and how the Components within can be added to Features in the WXS Project.


Contents

Functionality

Currently Drip provides the following functions:

  • Graphical environment to select and manage a single project at a time
  • Scan of the Project (wxs) source directory tree for base directories which will become Fragments
  • Runs Tallow against each selected sub directory
    • Note: "Drips Tallow"
  • Components are determined, and listed so that they can be added easily to the Features
  • Changes: "PUT-GUID-HERE" to "{an actual real GUID}"
    • Next version: Include a method to refresh directory and keep GUIDs
  • Change: '<DirectoryRef Id="TARGETDIR">' to <DirectoryRef Id="INSTALLDIR">
    • Note: The following is required to make the whole list unique
  • Change: '<Directory Id="' to '<Directory Id="[[BaseDirName]]'
  • Change: '<Component Id="' to '<Component Id="[[BaseDirName]]'
  • Change: '<File Id="' to '<File Id="[[BaseDirName]]'
  • Searches for root paths, and removes them in order to readily move the Fractures along with the Install Files.
  • Makes reference-able, so that the Wxs Drip can be shared
  • Provides a component list at the end, so that the components can be added to the WixAware project easily
  • Creates a Candle and Light batch file to go along with WixAware so that you can quickly rebuild your full install at any time


Currently, Drip is missing:

  • Ability to stop the processing once "Create Fragments" has been pressed
  • Ability to locate files names and directory paths easily. You have to type them or paste them in.


Drip makes Tallow useful, but it can only be used to quickly create components for your new Wix or WixAware project. Once the your project has been released, you shouldn't use Drip for it again as the GUIDs will be recreated each time, and this will ruin your ability to provide patch updates.


Example

If you would like a 60MB example to work with, teleflow.org provides TeleFlow and the WiX files that go with it. The reduced example included with Drip are a part of the full TeleFlow project, and will not yield a usable build unless you request the full set of files.

Here is how it would look for a build of TeleFlow. Drip would be started, and the following entries set:

Settings

Settings for Drip and Tallow to work together

1) Location of WXS e:\teleflowinstaller\Wix\TeleFlowTest.wxs

2) Directory Drip Base Path e:\teleflowinstaller\Wix\SourceDir\PFiles\TeleFlow Note: See Tree below for layout details

3) Fragment prefix name frag_ or fragment_


Discover or Find Directories

We have decided to select the first level directories in the Project source. After pressing the button, we received this back:

e:\teleflowinstaller\Wix\SourceDir\PFiles\TeleFlow\Applications
e:\teleflowinstaller\Wix\SourceDir\PFiles\TeleFlow\AppTemp
e:\teleflowinstaller\Wix\SourceDir\PFiles\TeleFlow\Databases
e:\teleflowinstaller\Wix\SourceDir\PFiles\TeleFlow\Languages
e:\teleflowinstaller\Wix\SourceDir\PFiles\TeleFlow\Macros
e:\teleflowinstaller\Wix\SourceDir\PFiles\TeleFlow\Sounds
e:\teleflowinstaller\Wix\SourceDir\PFiles\TeleFlow\Templates
e:\teleflowinstaller\Wix\SourceDir\PFiles\TeleFlow\TemplateTams
e:\teleflowinstaller\Wix\SourceDir\PFiles\TeleFlow\TemplateTrees


Drip Tallow

No changes were made, and we decided to create or updates these as our Fragments. Because we also have a User Interface for this installation, we check the Include UI.WXS option before clicking "Drip Tallow."

From here the bottom screen shows us Drip's progress in gathering the files. This not what Tallow gives us, but what Drip has modified. The output is very similar, but has been customized so that it can be readily adopted into the Wix or WixAware project.


Completed

After all the Fragment files have been created, a Message will popup, and you can use the output to build your WixAware project, or a command file so that you can run a batch command to rebuild your project at any time. Once you have added your the Component XML (eg: <ComponentRef Id="Applications_component0" /> ) to one more more features, continue developing your and managing your project using WixAware.


Download

WiXDrip is available for download here:

http://teleflow.org/software/opensource/wixdrip/DripRelease.zip

If you are interested in extending the capabilities of WiXDrip, the Delphi source code is available here:

http://teleflow.org/software/opensource/wixdrip/DripGui.zip

This zip file includes open source files required to build the application. You will need to download additional library files if you would like compile this software. Please refer to the Open Source Pascal section for more information.


Appendix

This is the Directory structure used as the example in this document. The files include with Drip.exe are a subset.

E:\teleflowinstaller\Wix\SourceDir\
+---PFiles
¦  +---CommonFiles
¦  ¦  +---Eng
¦  ¦      +---Prompts
¦  ¦      +---Scripts
¦  +---Doc
¦  +---TeleFlow
¦      +---Applications
¦      ¦  +---AnswerTest
¦      ¦      +---Log
¦      ¦      +---Tam
¦      ¦      +---Vox
¦      ¦          +---Eng
¦      ¦              +---Prompts
¦      ¦              +---Scripts
¦      +---AppTemp
¦      +---Databases
¦      +---Languages
¦      ¦  +---English
¦      ¦  +---French
¦      ¦  +---Spanish
¦      +---Macros
¦      ¦  +---C
¦      ¦  +---I
¦      ¦  +---M
¦      ¦  +---S
¦      ¦  +---T
¦      ¦  +---U
¦      +---Sounds
¦      +---Templates
¦      ¦  +---Demonstration Application
¦      ¦  ¦  +---Donation900
¦      ¦  ¦  ¦  +---bin
¦      ¦  ¦  ¦  +---Dbf
¦      ¦  ¦  ¦  +---Tam
¦      ¦  ¦  ¦  +---Vox
¦      ¦  ¦  ¦      +---Eng
¦      ¦  ¦  ¦          +---Scripts
¦      ¦  ¦  +---Golf Registration
¦      ¦  ¦  ¦  +---bin
¦      ¦  ¦  ¦  +---Dbf
¦      ¦  ¦  ¦  +---Tam
¦      ¦  ¦  ¦  +---Vox
¦      ¦  ¦  ¦      +---Eng
¦      ¦  ¦  ¦          +---Scripts
¦      ¦  ¦  +---Home Answer Machine
¦      ¦  ¦  ¦  +---Dbf
¦      ¦  ¦  ¦  +---Tam
¦      ¦  ¦  ¦  +---VMAIL
¦      ¦  ¦  ¦  ¦  +---NEW
¦      ¦  ¦  ¦  ¦  +---SAVE
¦      ¦  ¦  ¦  ¦  +---TEMP
¦      ¦  ¦  ¦  +---Vox
¦      ¦  ¦  ¦      +---Eng
¦      ¦  ¦  ¦          +---Scripts
¦      ¦  ¦  +---Lottery
¦      ¦  ¦  ¦  +---bin
¦      ¦  ¦  ¦  +---Dbf
¦      ¦  ¦  ¦  +---Stats
¦      ¦  ¦  ¦  +---Tam
¦      ¦  ¦  ¦  +---Vox
¦      ¦  ¦  ¦      +---Eng
¦      ¦  ¦  ¦          +---scripts
¦      ¦  ¦  +---Referral
¦      ¦  ¦      +---Dbf
¦      ¦  ¦      +---Stats
¦      ¦  ¦      +---Tam
¦      ¦  ¦      +---Vox
¦      ¦  ¦          +---Eng
¦      ¦  ¦              +---Scripts
¦      ¦  +---Example Task
¦      ¦  ¦  +---DLL Function
¦      ¦  ¦  ¦  +---Tam
¦      ¦  ¦  +---TransferDemo
¦      ¦  ¦  ¦  +---Bin
¦      ¦  ¦  ¦  +---Log
¦      ¦  ¦  ¦  +---Tam
¦      ¦  ¦  ¦  +---Vox
¦      ¦  ¦  ¦      +---Eng
¦      ¦  ¦  ¦          +---Scripts
¦      ¦  ¦  +---TransferDemo2
¦      ¦  ¦      +---Bin
¦      ¦  ¦      +---Data
¦      ¦  ¦      ¦  +---Dbf
¦      ¦  ¦      ¦  +---mySQL
¦      ¦  ¦      +---Log
¦      ¦  ¦      +---Tam
¦      ¦  ¦      +---Vox
¦      ¦  ¦          +---Eng
¦      ¦  ¦              +---Scripts
¦      ¦  +---New Application Template
¦      ¦  ¦  +---Blank
¦      ¦  ¦  +---Inbound
¦      ¦  ¦  ¦  +---bin
¦      ¦  ¦  ¦  +---Dbf
¦      ¦  ¦  ¦  +---Stats
¦      ¦  ¦  ¦  +---Tam
¦      ¦  ¦  ¦  +---Vox
¦      ¦  ¦  ¦      +---eng
¦      ¦  ¦  ¦          +---scripts
¦      ¦  ¦  +---Outbound
¦      ¦  ¦  ¦  +---bin
¦      ¦  ¦  ¦  +---Dbf
¦      ¦  ¦  ¦  +---Stats
¦      ¦  ¦  ¦  +---Tam
¦      ¦  ¦  ¦  +---Vox
¦      ¦  ¦  ¦      +---eng
¦      ¦  ¦  ¦          +---scripts
¦      ¦  ¦  +---ServiceBranching
¦      ¦  ¦  ¦  +---Dbf
¦      ¦  ¦  ¦  +---Doc
¦      ¦  ¦  ¦  ¦  +---HTML
¦      ¦  ¦  ¦  +---stats
¦      ¦  ¦  ¦  +---tam
¦      ¦  ¦  ¦  +---vox
¦      ¦  ¦  ¦      +---Eng
¦      ¦  ¦  ¦          +---Scripts
¦      ¦  ¦  +---Timed Loop
¦      ¦  ¦      +---Dbf
¦      ¦  ¦      +---Tam
¦      ¦  ¦      +---Vox
¦      ¦  ¦          +---Eng
¦      ¦  ¦              +---Scripts
¦      ¦  +---Tutorial
¦      ¦      +---Answer 1
¦      ¦      ¦  +---dbf
¦      ¦      ¦  +---Tam
¦      ¦      ¦  +---Vox
¦      ¦      ¦      +---Eng
¦      ¦      ¦          +---scripts
¦      ¦      +---Answer 2
¦      ¦          +---dbf
¦      ¦          +---Tam
¦      ¦          +---Vox
¦      ¦              +---Eng
¦      ¦                  +---scripts
¦      +---TemplateTams
¦      +---TemplateTrees
¦          +---Vox
¦              +---Eng
¦                  +---Prompts
¦                  +---Scripts
+---Program Files
¦  +---Common Files
¦      +---System
¦          +---Ole DB
+---Redist

Search Tags: wix installer drip wixdrip WiX WIX Wix drip DRip