Share via


Installer.AfterRollback イベント

Installers プロパティ内のすべてのインストーラによるインストールがロールバックされた後で発生します。

Public Event AfterRollback As InstallEventHandler
[C#]
public event InstallEventHandler AfterRollback;
[C++]
public: __event InstallEventHandler* AfterRollback;

[JScript] JScript では、このクラスで定義されているイベントを処理できます。ただし、独自に定義することはできません。

イベント データ

イベント ハンドラが、このイベントに関連するデータを含む、InstallEventArgs 型の引数を受け取りました。次の InstallEventArgs プロパティには、このイベントの固有の情報が記載されます。

プロパティ 説明
SavedState インストールの現在の状態を表す IDictionary を取得します。

使用例

[Visual Basic, C#, C++] AfterRollback イベントの例を次に示します。この例は、 Install メソッドをオーバーライドし、 Rollback メソッドが呼び出されるように、明示的に ArgumentException をスローします。 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

[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 '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 ");
   }
}

[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 {
private:
    // Event handler for 'AfterRollback' event.
    void MyInstaller_AfterRollBack(Object* sender, InstallEventArgs* e) {
        Console::WriteLine(S"AfterRollBack Event occured.");
    }

public:
    MyInstallerClass() {
        // Attach the 'AfterRollback' event.
        this->AfterRollback += new InstallEventHandler(this, &MyInstallerClass::MyInstaller_AfterRollBack);
    }

    // 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_AfterRollback.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 名前空間 | BeforeRollback | OnAfterRollback | OnBeforeRollback