Installer クラス

定義

カスタム インストールに利用できる基本機能を提供します。Provides the foundation for custom installations.

public ref class Installer : System::ComponentModel::Component
public class Installer : System.ComponentModel.Component
type Installer = class
    inherit Component
Public Class Installer
Inherits Component
継承
派生

Installerクラスの使用例を次に示します。The following example demonstrates the use of the Installer class. これは、からInstaller継承するクラスを作成します。It creates a class which inherits from Installer. Commit完了すると、 Committingイベントが発生し、メッセージが表示されます。When Commit is about to complete, Committing event occurs and a message is displayed. Installerクラスを使用するには、プロジェクトで**** system.servicemodel アセンブリを参照する必要があります。To use the Installer class, you must reference the System.Configuration.Install assembly in your project.

#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 'Committing' event.
   void MyInstaller_Committing( Object^ sender, InstallEventArgs^ e )
   {
      Console::WriteLine( "" );
      Console::WriteLine( "Committing Event occurred." );
      Console::WriteLine( "" );
   }


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


public:
   MyInstallerClass()
   {
      
      // Attach the 'Committed' event.
      this->Committed += gcnew InstallEventHandler( this, &MyInstallerClass::MyInstaller_Committed );
      
      // Attach the 'Committing' event.
      this->Committing += gcnew InstallEventHandler( this, &MyInstallerClass::MyInstaller_Committing );
   }


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


   // 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.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 'Committed' event.
      this.Committed += new InstallEventHandler(MyInstaller_Committed);
      // Attach the 'Committing' event.
      this.Committing += new InstallEventHandler(MyInstaller_Committing);
   }
   // Event handler for 'Committing' event.
   private void MyInstaller_Committing(object sender, InstallEventArgs e)
   {
      Console.WriteLine("");
      Console.WriteLine("Committing Event occurred.");
      Console.WriteLine("");
   }
   // Event handler for 'Committed' event.
   private void MyInstaller_Committed(object sender, InstallEventArgs e)
   {
      Console.WriteLine("");
      Console.WriteLine("Committed Event occurred.");
      Console.WriteLine("");
   }
   // Override the 'Install' method.
   public override void Install(IDictionary savedState)
   {
      base.Install(savedState);
   }
   // 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.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 'Committed' event.
      AddHandler Me.Committed, AddressOf MyInstaller_Committed
      ' Attach the 'Committing' event.
      AddHandler Me.Committing, AddressOf MyInstaller_Committing
   End Sub

   ' Event handler for 'Committing' event.
   Private Sub MyInstaller_Committing(ByVal sender As Object, _
                                      ByVal e As InstallEventArgs)
      Console.WriteLine("")
      Console.WriteLine("Committing Event occurred.")
      Console.WriteLine("")
   End Sub

   ' Event handler for 'Committed' event.
   Private Sub MyInstaller_Committed(ByVal sender As Object, _
                                     ByVal e As InstallEventArgs)
      Console.WriteLine("")
      Console.WriteLine("Committed Event occurred.")
      Console.WriteLine("")
   End Sub

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

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

   ' Override the 'Rollback' method.
   Public Overrides Sub Rollback(ByVal savedState As IDictionary)
      MyBase.Rollback(savedState)
   End Sub
   Public Shared Sub Main()
      Console.WriteLine("Usage : installutil.exe Installer.exe ")
   End Sub
End Class

注釈

これは、すべての.NET Framework のカスタムインストーラーの基底クラスです。This is the base class for all custom installers in the .NET Framework. インストーラーは、コンピューターにアプリケーションをインストールするコンポーネントです。Installers are components that help install applications on a computer.

Installerを使用するには、 次の手順を実行する必要があります。There are several steps you must follow to use an Installer:

  • Installerクラスを継承します。Inherit the Installer class.

  • Installメソッド、Commitメソッド、Rollbackメソッド、Uninstallメソッドをすべてオーバーライドします。Override the Install, Commit, Rollback, and Uninstall methods.

  • 派生クラスにRunInstallerAttribute属性をtrueで追加します。Add the RunInstallerAttribute to your derived class and set it to true.

  • 派生クラスおよびインストールするアプリケーションをアセンブリに配置します。Put your derived class in the assembly with your application to install.

  • インストーラーを起動します。Invoke the installers. たとえば、Installutil.exe を使用してインストーラーを呼び出します。For example, use the InstallUtil.exe to invoke the installers.

Installersプロパティは、インストーラーのコレクションを格納します。The Installers property contains a collection of installers. このInstallerのインスタンスがインストーラーコレクションの一部である場合、Parentプロパティをコレクションを含むInstallerインスタンスに設定します。If this instance of Installer is part of an installer collection, the Parent property is set to the Installer instance that contains the collection. Installersコレクションの使用例については、AssemblyInstallerクラスを参照してください。For an example of the use of the Installers collection, see the AssemblyInstaller class.

InstallクラスのInstallerメソッド 、Commitメソッド 、 Rollbackメソッド 、Uninstallメソッドは、Installersプロパティに格納されているインストーラーのコレクションを参照し、各インストーラーの対応するメソッドを呼び出します。The Install, Commit, Rollback, and Uninstall methods of the Installer class go through the collection of installers stored in the Installers property, and invokes the corresponding method of each installer.

Uninstall InstallerInstallCommit、およびの各メソッドは、同じインスタンス上で常に呼び出されるとは限りません。 RollbackThe Install, Commit, Rollback, and Uninstall methods are not always called on the same Installer instance. たとえば、アプリケーションのInstallerインストールとコミット中に1つのインスタンスが使用され、その後、そのインスタンスへの参照が解放されます。For example, one Installer instance might be used while installing and committing an application, and then the reference to that instance is released. 後で、アプリケーションをアンインストールすると、新しいInstallerインスタンスへの参照が作成されます。つまりUninstall 、の別Installerのインスタンスによってメソッドが呼び出されます。Later, uninstalling the application creates a reference to a new Installer instance, meaning that the Uninstall method is called by a different instance of Installer. このため、派生クラスでは、コンピューターの状態をインストーラーで保存しないでください。For this reason, in your derived class, do not save the state of a computer in an installer. 代わりに、呼び出し間IDictionaryで保持されInstallCommit Rollback、、、およびUninstallの各メソッドに渡されるを使用します。Instead, use an IDictionary that is preserved across calls and passed into your Install, Commit, Rollback, and Uninstall methods.

次の2つの状況では、情報をステートセーバー IDictionaryに保存する必要があります。Two situations illustrate the need to save information in the state-saver IDictionary. まず、インストーラーによってレジストリキーが設定されているとします。First, suppose that your installer sets a registry key. ここでは、 IDictionaryキーの元の値をに保存します。It should save the key's original value in the IDictionary. インストールがロールバックされた場合は、元の値を復元できます。If the installation is rolled back, the original value can be restored. 次に、インストーラーによって既存のファイルが置き換えられるとします。Second, suppose the installer replaces an existing file. 既存のファイルを一時ディレクトリに保存し、そのIDictionaryファイルの新しい場所をに保存します。Save the existing file in a temporary directory and the location of the new location of the file in the IDictionary. インストールがロールバックされると、新しいファイルが削除され、一時的な場所から元のファイルに置き換えられます。If the installation is rolled back, the newer file is deleted and replaced by the original from the temporary location.

Installer.Contextプロパティには、インストールに関する情報が含まれています。The Installer.Context property contains information about the installation. たとえば、インストールのログファイルの場所、 Uninstallメソッドで必要な情報を保存するファイルの場所、およびインストール実行可能ファイルの実行時に入力されたコマンドラインに関する情報があります。For example, information about the location of the log file for the installation, the location of the file to save information required by the Uninstall method, and the command line that was entered when the installation executable was run.

コンストラクター

Installer()

Installer クラスの新しいインスタンスを初期化します。Initializes a new instance of the Installer class.

プロパティ

CanRaiseEvents

コンポーネントがイベントを発生させることがきるかどうかを示す値を取得します。Gets a value indicating whether the component can raise an event.

(継承元 Component)
Container

IContainer を含む Component を取得します。Gets the IContainer that contains the Component.

(継承元 Component)
Context

現在のインストールに関する情報を取得または設定します。Gets or sets information about the current installation.

DesignMode

Component が現在デザイン モードかどうかを示す値を取得します。Gets a value that indicates whether the Component is currently in design mode.

(継承元 Component)
Events

Component に結び付けられているイベント ハンドラーのリストを取得します。Gets the list of event handlers that are attached to this Component.

(継承元 Component)
HelpText

インストーラー コレクション内のすべてのインストーラーに関するヘルプ テキストを取得します。Gets the help text for all the installers in the installer collection.

Installers

インストーラーが格納しているインストーラーのコレクションを取得します。Gets the collection of installers that this installer contains.

Parent

インストーラーが属しているコレクションを格納しているインストーラーを取得または設定します。Gets or sets the installer containing the collection that this installer belongs to.

Site

ISiteComponent を取得または設定します。Gets or sets the ISite of the Component.

(継承元 Component)

メソッド

Commit(IDictionary)

派生クラスによってオーバーライドされた場合、インストール トランザクションを完了します。When overridden in a derived class, completes the install transaction.

CreateObjRef(Type)

リモート オブジェクトとの通信に使用するプロキシの生成に必要な情報をすべて格納しているオブジェクトを作成します。Creates an object that contains all the relevant information required to generate a proxy used to communicate with a remote object.

(継承元 MarshalByRefObject)
Dispose()

Component で使用されるすべてのリソースを解放します。Releases all resources used by the Component.

(継承元 Component)
Dispose(Boolean)

Component で使用されたアンマネージド リソースを解放し、必要に応じてマネージド リソースも解放します。Releases the unmanaged resources used by the Component and optionally releases the managed resources.

(継承元 Component)
Equals(Object)

指定されたオブジェクトが現在のオブジェクトと等しいかどうかを判定します。Determines whether the specified object is equal to the current object.

(継承元 Object)
GetHashCode()

既定のハッシュ関数として機能します。Serves as the default hash function.

(継承元 Object)
GetLifetimeService()

対象のインスタンスの有効期間ポリシーを制御する、現在の有効期間サービス オブジェクトを取得します。Retrieves the current lifetime service object that controls the lifetime policy for this instance.

(継承元 MarshalByRefObject)
GetService(Type)

Component またはその Container で提供されるサービスを表すオブジェクトを返します。Returns an object that represents a service provided by the Component or by its Container.

(継承元 Component)
GetType()

現在のインスタンスの Type を取得します。Gets the Type of the current instance.

(継承元 Object)
InitializeLifetimeService()

このインスタンスの有効期間ポリシーを制御する有効期間サービス オブジェクトを取得します。Obtains a lifetime service object to control the lifetime policy for this instance.

(継承元 MarshalByRefObject)
Install(IDictionary)

派生クラスでオーバーライドされた場合、インストールを実行します。When overridden in a derived class, performs the installation.

MemberwiseClone()

現在の Object の簡易コピーを作成します。Creates a shallow copy of the current Object.

(継承元 Object)
MemberwiseClone(Boolean)

現在の MarshalByRefObject オブジェクトの簡易コピーを作成します。Creates a shallow copy of the current MarshalByRefObject object.

(継承元 MarshalByRefObject)
OnAfterInstall(IDictionary)

AfterInstall イベントを発生させます。Raises the AfterInstall event.

OnAfterRollback(IDictionary)

AfterRollback イベントを発生させます。Raises the AfterRollback event.

OnAfterUninstall(IDictionary)

AfterUninstall イベントを発生させます。Raises the AfterUninstall event.

OnBeforeInstall(IDictionary)

BeforeInstall イベントを発生させます。Raises the BeforeInstall event.

OnBeforeRollback(IDictionary)

BeforeRollback イベントを発生させます。Raises the BeforeRollback event.

OnBeforeUninstall(IDictionary)

BeforeUninstall イベントを発生させます。Raises the BeforeUninstall event.

OnCommitted(IDictionary)

Committed イベントを発生させます。Raises the Committed event.

OnCommitting(IDictionary)

Committing イベントを発生させます。Raises the Committing event.

Rollback(IDictionary)

派生クラスによってオーバーライドされた場合、インストール前のコンピューターの状態を復元します。When overridden in a derived class, restores the pre-installation state of the computer.

ToString()

String の名前 (存在する場合) を格納する Component を返します。Returns a String containing the name of the Component, if any. このメソッドはオーバーライドできません。This method should not be overridden.

(継承元 Component)
Uninstall(IDictionary)

派生クラスによってオーバーライドされた場合、インストール内容を削除します。When overridden in a derived class, removes an installation.

イベント

AfterInstall

Installers プロパティ内のすべてのインストーラーの Install(IDictionary) メソッドが実行された後で発生します。Occurs after the Install(IDictionary) methods of all the installers in the Installers property have run.

AfterRollback

Installers プロパティ内のすべてのインストーラーによるインストールがロールバックされた後で発生します。Occurs after the installations of all the installers in the Installers property are rolled back.

AfterUninstall

Installers プロパティ内のすべてのインストーラーのアンインストールが実行された後で発生します。Occurs after all the installers in the Installers property perform their uninstallation operations.

BeforeInstall

インストーラー コレクション内の各インストーラーの Install(IDictionary) メソッドが実行される前に発生します。Occurs before the Install(IDictionary) method of each installer in the installer collection has run.

BeforeRollback

Installers プロパティ内のインストーラーがロールバックされる前に発生します。Occurs before the installers in the Installers property are rolled back.

BeforeUninstall

Installers プロパティ内のインストーラーのアンインストールが実行される前に発生します。Occurs before the installers in the Installers property perform their uninstall operations.

Committed

Installers プロパティ内のすべてのインストーラーがインストールをコミットした後で発生します。Occurs after all the installers in the Installers property have committed their installations.

Committing

Installers プロパティ内のインストーラーがインストールをコミットする前に発生します。Occurs before the installers in the Installers property commit their installations.

Disposed

Dispose() メソッドの呼び出しによってコンポーネントが破棄されるときに発生します。Occurs when the component is disposed by a call to the Dispose() method.

(継承元 Component)

適用対象

こちらもご覧ください