[wix-users] Modifying existing merge module components

Rob Mensching rob at firegiant.com
Fri Aug 26 10:33:33 PDT 2016


melt for .wixlib or dark for .wxs

_____________________________________________________________
 Short replies here. Complete answers over there: http://www.firegiant.com/


-----Original Message-----
From: wix-users [mailto:wix-users-bounces at lists.wixtoolset.org] On Behalf Of Matthew Stickney
Sent: Friday, August 26, 2016 10:32 AM
To: wix-users at lists.wixtoolset.org
Subject: [wix-users] Modifying existing merge module components

I've got an installer that pulls in a merge module from a third-party vendor. This module happens to have a number of issues, most significantly that it registers a bunch of COM files with SelfReg, which has caused instability in the field. Since the SelfRegModules action isn't scheduled by default, and the module has been out of service for years, I was hoping to author the registration entries myself.

The trouble I'm having is that there isn't a way to add e.g. TypeLib elements to a File that has been defined elsewhere, even though it would strictly add entries to the msi tables if advertising was off.

I tried using a FileRef as the parent of the TypeLib, but that's forbidden by the schema.

I tried creating a duplicate File element, but DirectoryRef apparently can't find the directory symbol from the merge module, and this seems fragile if the merge module.

The only other thing I can think of is to try to capture the raw registry entries myself, but I'm not sure that would do the right thing with self-repair, and there are some platform issues like getting file paths for 32- and 64-bit systems.

Is there a reasonable way to accomplish this? Taking the nuclear option, is there a way to harvest the merge module into wxs files that I can modify? If not, could TypeLib be allowed as a child of FileRef if advertise=no (or perhaps get a FileRef attribute for use as a child of Component) in a future version?

-Matt Stickney


More information about the wix-users mailing list