Installer.BeforeRollback イベント
Installers プロパティ内のインストーラによるインストールがロールバックされる前に発生します。
Public Event BeforeRollback As InstallEventHandler
[C#]
public event InstallEventHandler BeforeRollback;
[C++]
public: __event InstallEventHandler* BeforeRollback;
[JScript] JScript では、このクラスで定義されているイベントを処理できます。ただし、独自に定義することはできません。
イベント データ
イベント ハンドラが、このイベントに関連するデータを含む、InstallEventArgs 型の引数を受け取りました。次の InstallEventArgs プロパティには、このイベントの固有の情報が記載されます。
プロパティ | 説明 |
---|---|
SavedState | インストールの現在の状態を表す IDictionary を取得します。 |
使用例
[Visual Basic, C#, C++] BeforeRollback イベントの例を次に示します。この例は、 Install メソッドをオーバーライドし、 Rollback メソッドが呼び出されるように、明示的に ArgumentException をスローします。 Rollback が完了すると、 BeforeRollback イベントが発生し、メッセージが表示されます。
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] JScript のサンプルはありません。Visual Basic、C#、および C++ のサンプルを表示するには、このページの左上隅にある言語のフィルタ ボタン をクリックします。
必要条件
プラットフォーム: Windows 98, Windows NT 4.0, Windows Millennium Edition, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 ファミリ
.NET Framework セキュリティ:
- 直前の呼び出し元の完全信頼。このメンバは、部分的に信頼されているコードから使用することはできません。詳細の参照先 : 部分信頼コードからのライブラリの使用
参照
Installer クラス | Installer メンバ | System.Configuration.Install 名前空間 | AfterRollback | OnAfterRollback | OnBeforeRollback