The System.Configuration.Install namespace provides classes that allow you to write custom installers for your own components. The System.Configuration.Install.Installer class is the base class for all custom installers in the.NET Framework.
Through the System.Configuration.Install.Installer.Installers property, an installer contains a collection of other installers as children. As the installer is executed, it cycles through its children and calls System.Configuration.Install.Installer.Install(IDictionary), System.Configuration.Install.Installer.Commit(IDictionary), System.Configuration.Install.Installer.Rollback(IDictionary), or System.Configuration.Install.Installer.Uninstall(IDictionary). For an example of an object in the System.Configuration.Install.Installer.Installers collection, see System.Diagnostics.EventLogInstaller.
The System.Configuration.Install.Installer.Context property contains information about the installation. For example, information about the location of the log file for the installation, the location of the file that saves information required by the System.Configuration.Install.Installer.Uninstall(IDictionary) method, and the command line that was entered when the installation executable was run. For an example of an installation executable, see Installer Tool (Installutil.exe).
The System.Configuration.Install.Installer.Install(IDictionary), System.Configuration.Install.Installer.Commit(IDictionary), System.Configuration.Install.Installer.Rollback(IDictionary), and System.Configuration.Install.Installer.Uninstall(IDictionary) methods are not always called on the same instance of System.Configuration.Install.Installer. For example, you might use an System.Configuration.Install.Installer to install and commit an application, and then release the reference to that System.Configuration.Install.Installer. Later, uninstalling the application creates a new reference to an System.Configuration.Install.Installer, which means that the System.Configuration.Install.Installer.Uninstall(IDictionary) method is called on a different instance of System.Configuration.Install.Installer. For this reason, do not save the state of a computer in an installer. Instead, use an IDictionary that is preserved across calls and passed into the System.Configuration.Install.Installer.Install(IDictionary), System.Configuration.Install.Installer.Commit(IDictionary), System.Configuration.Install.Installer.Rollback(IDictionary), and System.Configuration.Install.Installer.Uninstall(IDictionary) methods.