Merge modules are for providing to third parties, for them to integrate into
their installers. If you're only using this common code in-house, in other
WiX-based installers, I recommend building and sharing a .wixlib instead (or
you can simply share the .wxs source code, the .wixlib simply saves some
compilation time).

Sharing components between product installers is being de-emphasised as it
leads to trouble with servicing - you cannot target a component with a
patch, only a product, so if a defect is discovered in a common component,
all products which installed that component have to be patched, unless some
other mechanism is available to redirect clients to the new version (e.g.
publisher policy in .NET and Win32 assemblies).

In answer to your question, the scheduling of custom actions contained in a
merge module is controlled by the ModuleInstallExecuteSequence table. Unlike
in the master InstallExecuteSequence table, the merge module can specify a
sequence relative to a base action rather than a specific sequence. The
absolute sequence number is resolved when the module is merged in. This
requires that a merge tool is used which understands this - the standard
mergemod.dll does.

WiX interprets <InstallExecuteSequence> elements to generate rows in the
InstallExecuteSequence for the main installer, if building an .msi (the
<Product> element) or in the ModuleInstallExecuteSequence for a merge
module. The standard scheduling of SchedXmlFile, as of at least 3.0.3502, is
to come after InstallFiles, but this can be overridden in your own
<InstallExecuteSequence>.

To confirm the problem could you post:

- The exact version of WiX you're using, including build number;
- The name and version of the tool used to build the final .msi;
- If you have access to Orca, or another tool for viewing .msm contents, the
contents of the ModuleInstallExecuteSequence table from the .msm
(specifically the SchedXmlFile row).

-- 
Mike Dimmick

-----Original Message-----
From: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED] On Behalf Of csellers
Sent: 27 December 2007 23:00
To: wix-users@lists.sourceforge.net
Subject: [WiX-users] Using XmlFile in a merge module


I currently have an MSI Wix project that (among other things) copies an xml
file and makes modifications to it using util:XmlFile.  I am in the process
of converting this project to a merge module (MSM), but when I include the
merge module in another install, I get an error saying there was a failure
while configuring XML files.

I then noticed that I get this error before the xml file had been copied
(which would explain the error).  I did not have this problem when I was
building an msi file.  Looking at the log file, the failure is in
SchedXmlFile, which is occurring before any files have been copied.

If I remove the XmlFile commands, the install runs without any problems.

Is there a reason why this is happening in the merge module when it didn't
in the msi?  Is there anyway to control when SchedXmlFile runs?



-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2005.
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