Issues with WiX 3.8 and Quickbooks SDK Merge Modules

614 views Asked by At

Has anyone had any issues with integrating the Merge Modules supplied with the API download .msi file and WiX? Or any other MSI/Installer tool?

When I add for various Features it will accept the Xerces 2.5.0.msm but including any other type of merge modules will fail with the following errors

30>light.exe(0,0): error LGHT0204: ICE27: 'SelfUnregModules' Action in InstallExecuteSequence table in wrong place. Current: Selection, Correct: Execution
30>light.exe(0,0): error LGHT0204: ICE27: Action: 'SelfUnregModules' in InstallExecuteSequence table must come after the 'InstallValidate' action.
30>light.exe(0,0): error LGHT0204: ICE27: Action: 'SelfUnregModules' in InstallExecuteSequence table must come after the 'InstallInitialize' action.
30>light.exe(0,0): error LGHT0204: ICE27: Action: 'InstallFiles' in InstallExecuteSequence table must come before the 'SelfRegModules' action. Current seq#: 4000. Dependent seq#: 2850.

The directory structure looks as so:

<Directory Id="INSTALLDIR" Name="Datacenter">
            <Merge SourceFile="$(var.QuickbooksMergeModules)\Xerces2.5.0.msm" Language="$(var.LCID)" DiskId="1" Id="Xerces2.5.0.msm"></Merge>
            <Merge SourceFile="$(var.QuickbooksMergeModules)\QBFC13_0.msm" Language="$(var.LCID)" DiskId="1" Id="QBFC13_0.msm"></Merge>

No matter what, cannot get it to work beyond that. I've found some information online regarding including the VC++ 7.0 runtime (I'm assuming I can use later?) but haven't attempted it yet.

Thoughts?

1

There are 1 answers

0
Christopher Painter On

I would carefully read MSI Best Practice #43 and my somewhat counter argument In Defense of Merge Modules.

It's generally best to not use third party merge modules anymore. A standalone MSI brought in through a bootstrapper/chainer is better. If needed, build a stand alone MSI using the merge module and put that into your chainer. The point is, don't contaminate your MSI with problems that can be introduced through the merge module.

The fact that they have custom actions with the name SelfReg in it really makes me wonder about the quality of these modules. Self registration (any form of it) is usually a very bad thing.