Was this page helpful?
Your feedback about this content is important. Let us know what you think.
Additional feedback?
1500 characters remaining
Export (0) Print
Expand All

Installer.AfterRollback Event

Occurs after the installations of all the installers in the Installers property are rolled back.

[Visual Basic]
Public Event AfterRollback As InstallEventHandler
public event InstallEventHandler AfterRollback;
public: __event InstallEventHandler* AfterRollback;

[JScript] In JScript, you can handle the events defined by a class, but you cannot define your own.

Event Data

The event handler receives an argument of type InstallEventArgs containing data related to this event. The following InstallEventArgs property provides information specific to this event.

Property Description
SavedState Gets an IDictionary that represents the current state of the installation.


[Visual Basic, C#, C++] The following example demonstrates the AfterRollback event. It overrides the Install method and explicitly throws an ArgumentException so that the Rollback method is called. When the Rollback is completed, the AfterRollback event occurs and a message is displayed.

[Visual Basic] 
Imports System
Imports System.Collections
Imports System.ComponentModel
Imports System.Configuration.Install

' Set 'RunInstaller' attribute to true.
<RunInstaller(True)>  _
Public Class MyInstallerClass
   Inherits Installer

   Public Sub New()
      ' Attach the 'AfterRollback' event.
      AddHandler Me.AfterRollback, AddressOf MyInstaller_AfterRollBack
   End Sub 'New

   ' Event handler for 'AfterRollback' event.
   Private Sub MyInstaller_AfterRollBack(sender As Object, e As InstallEventArgs)
      Console.WriteLine("AfterRollBack Event occured.")
   End Sub 'MyInstaller_AfterRollBack

   ' Override the 'Install' method.
   Public Overrides Sub Install(savedState As IDictionary)
      ' Explicitly throw an exception so that roll back is called.
      Throw New ArgumentException("Arg Exception")
   End Sub 'Install

   ' Override the 'Commit' method.
   Public Overrides Sub Commit(savedState As IDictionary)
   End Sub 'Commit

   ' Override the 'Rollback' method.
   Public Overrides Sub Rollback(savedState As IDictionary)
   End Sub 'Rollback

   Public Shared Sub Main()
      Console.WriteLine("Usage : installutil.exe Installer_AfterRollback.exe ")
   End Sub 'Main

End Class 'MyInstallerClass

using System;
using System.Collections;
using System.ComponentModel;
using System.Configuration.Install;

// Set 'RunInstaller' attribute to true.
public class MyInstallerClass: Installer

   public MyInstallerClass() :base()
      // Attach the 'AfterRollback' event.
      this.AfterRollback += new InstallEventHandler(MyInstaller_AfterRollBack);
   // Event handler for 'AfterRollback' event.
   private void MyInstaller_AfterRollBack(object sender, InstallEventArgs e)
      Console.WriteLine("AfterRollBack Event occured.");

   // Override the 'Install' method.
   public override void Install(IDictionary savedState)
      // Explicitly throw an exception so that roll back is called.
      throw new ArgumentException("Arg Exception");
   // Override the 'Commit' method.
   public override void Commit(IDictionary savedState)
   // Override the 'Rollback' method.
   public override void Rollback(IDictionary savedState)
   public static void Main()
      Console.WriteLine("Usage : installutil.exe Installer_AfterRollback.exe ");

#using <mscorlib.dll>
#using <System.dll>
#using <System.Configuration.Install.dll>

using namespace System;
using namespace System::Collections;
using namespace System::ComponentModel;
using namespace System::Configuration::Install;

// Set 'RunInstaller' attribute to true.
__gc class MyInstallerClass : public Installer {
    // Event handler for 'AfterRollback' event.
    void MyInstaller_AfterRollBack(Object* sender, InstallEventArgs* e) {
        Console::WriteLine(S"AfterRollBack Event occured.");

    MyInstallerClass() {
        // Attach the 'AfterRollback' event.
        this->AfterRollback += new InstallEventHandler(this, &MyInstallerClass::MyInstaller_AfterRollBack);

    // Override the 'Install' method.
    void Install(IDictionary* savedState) {
        // Explicitly throw an exception so that roll back is called.
        throw new ArgumentException(S"Arg Exception");

    // Override the 'Commit' method.
    void Commit(IDictionary* savedState) {

    // Override the 'Rollback' method.
    void Rollback(IDictionary* savedState) {

int main() {
    Console::WriteLine(S"Usage : installutil.exe Installer_AfterRollback.exe ");

[JScript] No example is available for JScript. To view a Visual Basic, C#, or C++ example, click the Language Filter button Language Filter in the upper-left corner of the page.


Platforms: Windows 98, Windows NT 4.0, Windows Millennium Edition, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 family

.NET Framework Security: 

See Also

Installer Class | Installer Members | System.Configuration.Install Namespace | BeforeRollback | OnAfterRollback | OnBeforeRollback

© 2015 Microsoft