Export (0) Print
Expand All
This topic has not yet been rated - Rate this topic

Installer.BeforeRollback Event

Occurs before the installers in the Installers property are rolled back.

[Visual Basic]
Public Event BeforeRollback As InstallEventHandler
[C#]
public event InstallEventHandler BeforeRollback;
[C++]
public: __event InstallEventHandler* BeforeRollback;

[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.

Example

[Visual Basic, C#, C++] The following example demonstrates the BeforeRollback event. It overrides the Install method and explicitly throws an ArgumentException so that the Rollback method is called. When the Rollback is complete, the BeforeRollback 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()
      MyBase.New()
      ' Attach the 'BeforeRollback' event.
      AddHandler Me.BeforeRollback, AddressOf MyInstaller_BeforeRollBack
      ' Attach the 'AfterRollback' event.
      AddHandler Me.AfterRollback, AddressOf MyInstaller_AfterRollback
   End Sub 'New


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

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

   ' Override the 'Install' method.
   Public Overrides Sub Install(savedState As IDictionary)
      MyBase.Install(savedState)
      ' 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)
      MyBase.Commit(savedState)
   End Sub 'Commit

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

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

End Class 'MyInstallerClass

[C#] 
using System;
using System.Collections;
using System.ComponentModel;
using System.Configuration.Install;

// Set 'RunInstaller' attribute to true.
[RunInstaller(true)]
public class MyInstallerClass: Installer
{
   public MyInstallerClass() :base()
   {
      // Attach the 'BeforeRollback' event.
      this.BeforeRollback += new InstallEventHandler(MyInstaller_BeforeRollBack);
      // Attach the 'AfterRollback' event.
      this.AfterRollback += new InstallEventHandler(MyInstaller_AfterRollback);
   }
   // Event handler for 'BeforeRollback' event.
   private void MyInstaller_BeforeRollBack(object sender, InstallEventArgs e)
   {
      Console.WriteLine("");
      Console.WriteLine("BeforeRollback Event occured.");
      Console.WriteLine("");        
   }
   // Event handler for 'AfterRollback' event.
   private void MyInstaller_AfterRollback(object sender, InstallEventArgs e)
   {
      Console.WriteLine("");
      Console.WriteLine("AfterRollback Event occured.");
      Console.WriteLine("");        
   }
   // Override the 'Install' method.
   public override void Install(IDictionary savedState)
   {
      base.Install(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)
   {
      base.Commit(savedState);
   }
   // Override the 'Rollback' method.
   public override void Rollback(IDictionary savedState)
   {
      base.Rollback(savedState);
   }
   public static void Main()
   {
      Console.WriteLine("Usage : installutil.exe Installer_BeforeRollback.exe ");      
   }
}

[C++] 
#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.
[RunInstaller(true)]
__gc class MyInstallerClass : public Installer {
public:
    MyInstallerClass() {
        // Attach the 'BeforeRollback' event.
        this->BeforeRollback += new InstallEventHandler(this, &MyInstallerClass::MyInstaller_BeforeRollBack);
        // Attach the 'AfterRollback' event.
        this->AfterRollback += new InstallEventHandler(this, &MyInstallerClass::MyInstaller_AfterRollback);
    }

private:
    // Event handler for 'BeforeRollback' event.
    void MyInstaller_BeforeRollBack(Object* sender, InstallEventArgs* e) {
        Console::WriteLine(S"");
        Console::WriteLine(S"BeforeRollback Event occured.");
        Console::WriteLine(S"");
    }

    // Event handler for 'AfterRollback' event.
    void MyInstaller_AfterRollback(Object* sender, InstallEventArgs* e) {
        Console::WriteLine(S"");
        Console::WriteLine(S"AfterRollback Event occured.");
        Console::WriteLine(S"");
    }

public:
    // Override the 'Install' method.
    void Install(IDictionary* savedState) {
        Installer::Install(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) {
        Installer::Commit(savedState);
    }

    // Override the 'Rollback' method.
    void Rollback(IDictionary* savedState) {
        Installer::Rollback(savedState);
    }
};

int main() {
    Console::WriteLine(S"Usage : installutil.exe Installer_BeforeRollback.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.

Requirements

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 | AfterRollback | OnAfterRollback | OnBeforeRollback

Did you find this helpful?
(1500 characters remaining)
Thank you for your feedback
Show:
© 2014 Microsoft. All rights reserved.