Question

I am creating an MSI installer using WiX. I have several .ocx and .dll files that must be registered on the end user's computer. Does including these files in the installation automatically register them as if the regsvr32 command had been run?

Was it helpful?

Solution

No, the Directory, Component and File elements only express copying a file to a folder. COM is expressed by the COM elements such as ProgId, Class, TypeLib and AppId tables.

If you know this information, you can author it manually. If you do not, you can use the utility Heat to harvest it. Heat simulates registration and extracts/transforms it into WXS code.

Using Regsvr32 to call DllRegister server ( or Gacutil to call a COMVisible assemlby or similar ) is considered an antipattern in the Windows Installer world. This is because it's fragile and out of process, not declarative and can't be rolled back or monitored for resilience.

Harvest Tool (Heat)

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top