Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    text
    copied!<p>The best way to use <code>regsvr32</code> to register a COM interface during an install is, don't. (grin)</p> <p>Calling <code>regsvr32</code> and other forms of "self-registration" during Windows Installer-based installs is bad practice. COM interfaces are often shared between multiple products. If package A registers COM interface <code>IFoo</code>, then package B (re)registers the same interface, then if either package is uninstalled and unregisters <code>IFoo</code> it breaks the remaining package.</p> <p>The preferred method is to extract the COM interface information and build it into Registry table entries in the <code>.msi</code> package. MSI recognizes matched COM Registry entries and manages a reference count of them rather than duplicating them. The 2nd..Nth entry just bumps the reference count, each uninstall merely decrements it, until the last uninstall decrements the ref-count to zero and Registry entries are actually removed.</p> <p>In WiX, the <a href="http://wix.sourceforge.net/manual-wix3/heat.htm" rel="nofollow">heat</a> tool is used to "harvest" COM interfaces (among other data) into WiX source fragments containing the necessary Registry entries. Installshield has a "COM extract at build" flag that does the same thing for MSI and Installscript-MSI projects. Other Windows Installer toolsets have similar capabilities.</p> <hr> <p>Note: Windows Installer(MSI) is the underlying installation-management API that is part of Windows itself. You need additional tools to generate <code>.msi</code> packages that use this API.</p> <p>Windows Installer XML (WiX) is an XML schema for describing MSI-based install packages, along with tools to generate the actual <code>.msi</code> package from documents in that schema. Installshield is another tool that can generate <code>.msi</code> packages. </p> <p>Those are the two that I have used. There are other tools such as InstallAware and Advanced Installer. I cannot speak to their capabilities, having never used them myself. Visual Studio also has a plug-in to generate install packages, but in my experience it scales poorly to industrial-strength products.</p>
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload