Browse Prior Art Database

Dynamic Registry Updates for COM Servers in MSI Disclosure Number: IPCOM000014095D
Original Publication Date: 2001-Jun-16
Included in the Prior Art Database: 2003-Jun-19

Publishing Venue



Disclosed is a program and implementation procedures that enable a file containing registry updates to be dynamically associated with an installed file during a Windows* MSI software installation. When installing software on a Microsoft* Windows system, the need often arises to update the registry in association with an installed executable file. Typically, a COM server implemented as a DLL or as an EXE would need corresponding registry updates (but this invention is not limited to such files). Traditionally, such updates would be performed by the executable file itself, by loading and executing a function in the file during installation. This has the disadvantage that it is not possible to load the file during installation if one or more dependent files are not available at that time (which is common during installations). Furthermore, MSI (Microsoft Installer), an emerging new installation technology for Windows, discourages the use of "self-registering" files in this way. A means of updating the registry without loading the corresponding executable file is required. Registry updates can be contained in text files that can be processed at installation time, but text files are normally static. Typically, such registry updates contain information that can be determined only at installation time (for instance, a registry value might contain the path to the executable file, which is specified by the user when the product is installed). This invention describes a method by which a text file can be associated with each installable file that requires corresponding, dynamic, registry updates. This is particularly useful for MSI installations, where the registry updates can be performed by MSI if and only if a particular file is installed, and automatically undone when the file in uninstalled. This invention solves the problem by providing a means whereby text files (one or more per executable file) can be used to contain registry update information. These text files can contain symbolic parameters that are replaced with values determined at installation time. The text files are parsed and the dynamic registry updates are associated with the corresponding installable file and entered into the MSI database for later processing by MSI when it installs the file (if it is selected for installation). Because MSI holds system and user information in "properties", it is extremely convenient that the symbolic parameters should be property names. This invention consists of two parts: Part 1). The text files that contain registry update information. These files can be in any convenient format, however the formats used by the Windows registry editors regedit.exe and regedt32.exe are convenient and recommended. Using these tools, extracts from existing registry trees can be written to .reg and .rgs files and used as source templates for the text files required. These text files can contain symbolic parameters that are substituted at installation time by an MSI custom action (user-written code, typically a DLL function) that processes these files. A simple example file in a format similar to a .reg file follows: