Installer.AfterRollback 事件
在回滚 Installers 属性中所有安装程序的安装后发生。
**命名空间:**System.Configuration.Install
**程序集:**System.Configuration.Install(在 system.configuration.install.dll 中)
语法
声明
Public Event AfterRollback As InstallEventHandler
用法
Dim instance As Installer
Dim handler As InstallEventHandler
AddHandler instance.AfterRollback, handler
public event InstallEventHandler AfterRollback
public:
event InstallEventHandler^ AfterRollback {
void add (InstallEventHandler^ value);
void remove (InstallEventHandler^ value);
}
/** @event */
public void add_AfterRollback (InstallEventHandler value)
/** @event */
public void remove_AfterRollback (InstallEventHandler value)
JScript 支持使用事件,但不支持进行新的声明。
示例
下面的示例说明 AfterRollback 事件。它重写 Install 方法,并显式引发 ArgumentException,以便调用 Rollback 方法。当完成 Rollback 后,发生 AfterRollback 事件,并显示一则消息。
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 '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("")
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_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.
[RunInstaller(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)
{
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_AfterRollback.exe ");
}
}
#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
{
private:
// Event handler for 'AfterRollback' event.
void MyInstaller_AfterRollBack( Object^ sender, InstallEventArgs^ e )
{
Console::WriteLine( "AfterRollBack Event occured." );
}
public:
MyInstallerClass()
{
// Attach the 'AfterRollback' event.
this->AfterRollback += gcnew InstallEventHandler( this, &MyInstallerClass::MyInstaller_AfterRollBack );
}
// 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_AfterRollback.exe " );
}
import System.*;
import System.Collections.*;
import System.ComponentModel.*;
import System.Configuration.Install.*;
// Set 'RunInstaller' attribute to true.
/** @attribute RunInstaller(true)
*/
public class MyInstallerClass extends Installer
{
public MyInstallerClass()
{
// Attach the 'AfterRollback' event.
this.add_AfterRollback(
new InstallEventHandler(MyInstaller_AfterRollBack));
} //MyInstallerClass
// Event handler for 'AfterRollback' event.
private void MyInstaller_AfterRollBack(Object sender, InstallEventArgs e)
{
Console.WriteLine("AfterRollBack Event occured.");
} //MyInstaller_AfterRollBack
// Override the 'Install' method.
public void Install(IDictionary savedState)
{
super.Install(savedState);
// Explicitly throw an exception so that roll back is called.
throw new ArgumentException("Arg Exception");
} //Install
// Override the 'Commit' method.
public void Commit(IDictionary savedState)
{
super.Commit(savedState);
} //Commit
// Override the 'Rollback' method.
public void Rollback(IDictionary savedState)
{
super.Rollback(savedState);
} //Rollback
public static void main(String[] args)
{
Console.WriteLine("Usage : installutil.exe"
+" Installer_AfterRollback.exe ");
} //main
} //MyInstallerClass
.NET Framework 安全性
- 对直接调用方的完全信任。此成员不能由部分信任的代码使用。有关更多信息,请参见。
平台
Windows 98、Windows 2000 SP4、Windows Millennium Edition、Windows Server 2003、Windows XP Media Center Edition、Windows XP Professional x64 Edition、Windows XP SP2、Windows XP Starter Edition
.NET Framework 并不是对每个平台的所有版本都提供支持。有关受支持版本的列表,请参见系统要求。
版本信息
.NET Framework
受以下版本支持:2.0、1.1、1.0
请参见
参考
Installer 类
Installer 成员
System.Configuration.Install 命名空间
BeforeRollback
OnAfterRollback
OnBeforeRollback