We have built and used a tool internally that provides a wrapper over 
Wix in MSI/MSP generation for over two years. Spikesource is in the 
business of building and packaging a large number of open source 
components (in the hundreds) and integrating them into application 
infrastructure stacks. On windows each of these open source components 
(e.g. apache, tomcat, jboss, mysql etc) are packaged into MSI files. 
These components can later be updated through MSP or MSI, so making sure 
the MSIs are built with component GUID tracking is an important feature 
in the tool.

I wanted to send out a brief description of what the tool does (or 
intends to do, in some cases) and see if there would be interest in the 
Wix community for such a tool. We would like to open source our tool, if 
it would be useful to others.

*Goal: *
Make it extremely easy to build simple MSI based installers with 
built-in support for most common installation tasks. Support 80% of the 
typical installation tasks through a XML configuration file that does 
not require deep knowledge of windows installer technology. The tool 
will generate  human readable and editable Wix source files, so for 
those 20% cases that are outside the scope of the tool, there should be 
enough Wix code generation to be a good starting point for customization.

If this sounds interesting, please read on :)

*Inputs:* (required ones, there will be a few additional optional ones)
1. Product name
2. Source directories (supports multiple sources) where the deployment 
files are
3. An XML document that specifies configuration information about MSI 
installation features.

*Outputs: *
1. MSI or MSP (will have a few additional required inputs)
2. GUIDs ini file for tracking Component Rules
3. Wix Source Files that the user can edit for further customizations.

*Installation Features Support:
*

  1. Create basic Windows Installers, with "WixUI_InstallDir" UI, i.e.
     wizard with Welcome, License Agreement, Installation Directory
     selection, Install Confirmation, Installation and Finish pages.   
2. Branding support for customizing Start/Finish and Header banners.
  3. MSP creation support - Pass the source paths to the previous and
     current versions of the product and in the configuration file
     identify the upgrade versioning info, the tool will generate
     temporary MSIs for each version and then merge them into an MSP
     using MsiMsp.exe
  4. Package installation files from source directories with MSI
     Component GUID tracking support - Component GUID tracking is
     implemented by creating an entry in the ini file for each
     subdirectory traversed with a sub-directory path to GUID mapping
     the first time the tool is run for a product. This ini file should
     be under source control and subsequent MSI creation for the same
     product should make this ini file available to the tool. It will
     generate the MSI reading the GUIDs from the ini file.
  5. Common Public MSI Property support - Create MSI properties for
     common public MSI properties such as ALLUSERS, ARPCOMMENTS,
     ARPREADME, ARPURLINFOABOUT etc based on configuration info provided.
  6. Registry entry creation support - Create registry entries based on
     configuration info provided.
  7. INI/Conf file generation support - Create ini file key-value pairs
     based on configuration info provided.
  8. Shortcut creation support - Create short cuts based on
     configuration info provided.
  9. Service Management  support (install/uninstall/start/stop)
 10. Custom Action support  - callout to user defined executables, bat
     files etc at configurable points during installation sequence
 11. COM DLL Registration support 
*Long Term:*
Support UI code generation, possibly through a visual designer.

The Wix source file generation is performed by substituting variables 
into Wix source templates, the values being extracted from the XML 
configuration file through XPath. The files source generation is by 
traversing the specified source directory, similar to tools like Tallow, 
but with Component GUID tracking. Currently the tool is built around the 
latest stable Wix 2.x build, this can later be upgraded to work with Wix 
3.0

If the question is why another XML Schema to describe installation tasks 
on top of Wix, I see the Wix Schema as being a wrapper over MSI database 
tables and operations on them and requires the developer to know and 
understand the various tables, their columns and what the purpose of 
each of those are. The Schema in the tool, is more functional in nature, 
it captures the installation tasks the developer would like to perform 
through its elements and attributes and does not require the developer 
to know some of the windows installer complexities for simple 
installation scenarios.

Sorry for the long post, if you have gotten here and feel such a tool 
would be useful to you, please let me know directly (no need to spam the 
list). I would like to gauge how much interest there would be, before I 
invest in the couple of weeks of work needed to get it to a point for 
general consumption.

Thanks,
-Sandip



-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft 
Defy all challenges. Microsoft(R) Visual Studio 2008. 
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
_______________________________________________
WiX-users mailing list
WiX-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-users

Reply via email to