Partilhar via


Installer.BeforeRollback Evento

Definição

Ocorre antes que os instaladores na propriedade Installers sejam revertidos.

public:
 event System::Configuration::Install::InstallEventHandler ^ BeforeRollback;
public event System.Configuration.Install.InstallEventHandler BeforeRollback;
member this.BeforeRollback : System.Configuration.Install.InstallEventHandler 
Public Custom Event BeforeRollback As InstallEventHandler 

Tipo de evento

Exemplos

O exemplo a seguir demonstra o BeforeRollback evento . Ele substitui o Install método e lança explicitamente um ArgumentException para que o Rollback método seja chamado. Quando o Rollback for concluído, o BeforeRollback evento ocorrerá e uma mensagem será exibida.

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


private:

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


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


public:

   // Override the 'Install' method.
   virtual void Install( IDictionary^ savedState ) override
   {
      Installer::Install( savedState );
      
      // Explicitly throw an exception so that roll back is called.
      throw gcnew ArgumentException( "Arg Exception" );
   }


   // Override the 'Commit' method.
   virtual void Commit( IDictionary^ savedState ) override
   {
      Installer::Commit( savedState );
   }


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

};

int main()
{
   Console::WriteLine( "Usage : installutil.exe Installer_BeforeRollback.exe " );
}
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 occurred.");
      Console.WriteLine("");
   }
   // Event handler for 'AfterRollback' event.
   private void MyInstaller_AfterRollback(object sender, InstallEventArgs e)
   {
      Console.WriteLine("");
      Console.WriteLine("AfterRollback Event occurred.");
      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 ");
   }
}
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


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

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

   ' 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

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

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

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

End Class

Aplica-se a

Confira também