Installation Process

When you create installation components for your Framework Services components, a default class called Installer1 is created in your project. This file contains all of the installation components you create for that project. The following figure shows this process.

Installation Components and Project

Visual Basic Installation Components

After you create an installation component and its associated Installer1 class for your project, you compile the project into a DLL or EXE. You then can do one of two things:

  • You can use the Installer Tool (Installutil.exe) to install that DLL on your local computer.

  • You can create a deployment package for your application and add your project's DLL to it as a custom action. When deployment occurs, the deployment project recognizes that it needs to run the Installer1 class, and it launches the installation process for your component resources.

Resource installation is transactional. That is, the installation processes through each installer in your Installer1 class (or any class with the RunInstallerAttribute value set to true) and makes sure that no errors occur before committing the installation as final. If any errors occur along the way, all of the resources that have previously been installed are uninstalled in a rollback transaction. Rollback is performed in the reverse order of install. The following figure shows this process.

Installation Process

Installation Component Process

In this picture, the Installer1 class is installing two component resources — a message queue and an event log. The message queue installation succeeds without error, so processing is passed on to the event log installation. An error is encountered in this log, so a rollback begins. During the rollback, the message queue is uninstalled and the system is returned to its original state. For more information on how the Rollback method works, see State Storage in the Installation Process.

For a list of the overall steps in creating and testing an installation component, see How to: Create Installation Components - High-Level Process.

Community Additions