[wix-users] Modifying existing merge module components

Matthew Stickney mstickney at compassmax.com
Fri Aug 26 10:31:46 PDT 2016

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

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