Installer.BeforeRollback 事件
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
在回滚 Installers 属性中的安装程序前发生。
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
事件类型
示例
以下示例演示 了 事件 BeforeRollback 。 它重写 Install 方法并显式引发 ArgumentException , Rollback 以便调用 方法。 Rollback完成后,将BeforeRollback发生 事件并显示一条消息。
#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