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
[email protected]
https://lists.sourceforge.net/lists/listinfo/wix-users