ServiceProcessInstallerとは? わかりやすく解説

ServiceProcessInstaller イベント


パブリック イベントパブリック イベント

  名前 説明
パブリック イベント AfterInstall  Installers プロパティ内のすべてのインストーラの Install メソッドが実行された後で発生します。 ( Installer から継承されます。)
パブリック イベント AfterRollback  Installers プロパティ内のすべてのインストーラによるインストールがロールバックされた後で発生します。 ( Installer から継承されます。)
パブリック イベント AfterUninstall  Installers プロパティ内のすべてのインストーラのアンインストールが実行された後で発生します。 ( Installer から継承されます。)
パブリック イベント BeforeInstall  インストーラ コレクション内の各インストーラの Install メソッドが実行される前に発生します。 ( Installer から継承されます。)
パブリック イベント BeforeRollback  Installers プロパティ内のインストーラによるインストールがロールバックされる前に発生します。 ( Installer から継承されます。)
パブリック イベント BeforeUninstall  Installers プロパティ内のインストーラのアンインストールが実行される前に発生します。 ( Installer から継承されます。)
パブリック イベント Committed  Installers プロパティ内のすべてのインストーラがインストールをコミットした後で発生します。 ( Installer から継承されます。)
パブリック イベント Committing  Installers プロパティ内のインストーラがインストールをコミットする前に発生します。 ( Installer から継承されます。)
パブリック イベント Disposed  コンポーネントの Disposed イベントを待機するイベント ハンドラを追加します。 ( Component から継承されます。)
参照参照

関連項目

ServiceProcessInstaller クラス
System.ServiceProcess 名前空間
ServiceInstaller クラス
ServiceBase クラス
ComponentInstaller
Installers
ServiceAccount 列挙体
ServiceInstallerDialog

ServiceProcessInstaller クラス

ServiceBase を拡張するクラスを含む実行可能ファイルをインストールします。このクラスは、サービス アプリケーションのインストール時に InstallUtil.exe などのインストール ユーティリティで呼び出されます。

名前空間: System.ServiceProcess
アセンブリ: System.ServiceProcess (system.serviceprocess.dll 内)
構文構文

Public Class ServiceProcessInstaller
    Inherits ComponentInstaller
Dim instance As ServiceProcessInstaller
public class ServiceProcessInstaller : ComponentInstaller
public ref class ServiceProcessInstaller :
 public ComponentInstaller
public class ServiceProcessInstaller extends
 ComponentInstaller
public class ServiceProcessInstaller extends
 ComponentInstaller
解説解説

ServiceProcessInstaller は、実行可能ファイル内のすべてのサービスに対して同じ作業を行います。このクラスは、インストール ユーティリティで、インストールするサービスに関連付けられたレジストリ値を書き込むために使用されます。

サービスをインストールするには、Installer から継承するプロジェクト インストーラ クラスを作成し、そのクラスの RunInstallerAttribute を true に設定します。プロジェクト内では、サービス アプリケーションごとに 1 つの ServiceProcessInstaller インスタンス、およびアプリケーション内の各サービスにつき 1 つの ServiceInstaller インスタンスをインスタンス化します。最後に、ServiceProcessInstaller インスタンスおよび ServiceInstaller インスタンスをプロジェクト インストーラ クラスに追加します。

InstallUtil.exe を実行すると、ユーティリティは、RunInstallerAttribute が true に設定されているクラスをサービス アセンブリ内で検索します。プロジェクト インストーラに関連付けられている Installers コレクションにクラスを追加することにより、サービス アセンブリにクラスを追加します。RunInstallerAttribute が false の場合、ユーティリティはプロジェクト インストーラを無視します。

ServiceProcessInstaller のインスタンスについては、プロパティを変更して、ログオンしたユーザー以外のアカウントでサービス アプリケーションを実行するように指定できます。サービスを実行するときに必要な特定の Username と Password の組み合わせを指定できます。また、Account を使用して、コンピュータのシステム アカウント、ローカル サービス アカウントやネットワーク サービス アカウント、またはユーザー アカウントでサービスを実行するように指定できます。

メモメモ

コンピュータのシステム アカウントは管理者アカウントとは異なります。

通常、コード内の ServiceInstaller ではこのメソッドを呼び出しません。このメソッドを呼び出すのは、一般的にインストール ユーティリティだけです。インストール ユーティリティは、インストール プロセス中に、ServiceProcessInstaller.Install メソッドと ServiceInstaller.Install メソッドを自動的に呼び出します。必要に応じて、インストール済みのすべてのコンポーネントで Rollback (または ServiceInstaller.Rollback) を呼び出すことによって、エラーを回復します。

アプリケーションのインストール ルーチンは、既にインストールされているコンポーネントに関する情報を、プロジェクト インストーラの Installer.Context を使用して自動的に維持します。この状態情報は、ServiceProcessInstaller インスタンスとして継続的に更新されます。各 ServiceInstaller インスタンスは、ユーティリティでインストールされます。通常、コードではこの状態情報を明示的に変更する必要はありません。

ServiceProcessInstaller をインスタンス化すると、基本クラスのコンストラクタ ComponentInstaller が呼び出されます。

使用例使用例

Installer から継承される、MyProjectInstaller という名前のプロジェクト インストーラを作成する例を次に示します。この例では、2 つのサービス "Hello-World Service 1" および "Hello-World Service 2" を含んだ、サービスの実行可能ファイルがあることを前提にしています。インストール ユーティリティによって呼び出される MyProjectInstaller のコンストラクタ内では、これらの各サービスに対して ServiceInstaller オブジェクトが作成され、実行可能ファイルに対して ServiceProcessInstaller が作成されます。インストール ユーティリティで MyProjectInstaller を有効なインストーラとして認識できるように、RunInstallerAttribute 属性は true に設定されます。

インストーラが Installers コレクションに追加される前に、オプションのプロパティがプロセス インストーラおよびサービス インストーラに設定されます。インストール ユーティリティが MyProjectInstaller にアクセスすると、InstallerCollection.Add の呼び出しを通じて Installers コレクションに追加されたオブジェクトが順番にインストールされます。このプロセス中に、インストーラは、どのオブジェクトがインストールされているのかを示す状態情報を保持します。このため、インストールに失敗した場合でも、それぞれのオブジェクトを順番に回復できます。

通常、プロジェクト インストーラ クラスは明示的にインスタンス化しません。プロジェクト インストーラ クラスを作成して、RunInstallerAttribute を追加しますが、実際にクラスを呼び出してインスタンス化するのはインストール ユーティリティです。

Imports System
Imports System.Collections
Imports System.Configuration.Install
Imports System.ServiceProcess
Imports System.ComponentModel

<RunInstallerAttribute(True)> _
Public Class MyProjectInstaller
    Inherits Installer
    Private serviceInstaller1 As ServiceInstaller
    Private serviceInstaller2 As ServiceInstaller
    Private processInstaller As ServiceProcessInstaller
    
    
    Public Sub New()
        ' Instantiate installers for process and services.
        processInstaller = New ServiceProcessInstaller()
        serviceInstaller1 = New ServiceInstaller()
        serviceInstaller2 = New ServiceInstaller()
        
        ' The services will run under the system account.
        processInstaller.Account = ServiceAccount.LocalSystem
        
        ' The services will be started manually.
        serviceInstaller1.StartType = ServiceStartMode.Manual
        serviceInstaller2.StartType = ServiceStartMode.Manual
        
        ' ServiceName must equal those on ServiceBase derived classes.
            
        serviceInstaller1.ServiceName = "Hello-World Service 1"
        serviceInstaller2.ServiceName = "Hello-World Service 2"
        
        ' Add installers to collection. Order is not important.
        Installers.Add(serviceInstaller1)
        Installers.Add(serviceInstaller2)
        Installers.Add(processInstaller)
    End Sub
End Class

using System;
using System.Collections;
using System.Configuration.Install;
using System.ServiceProcess;
using System.ComponentModel;

[RunInstallerAttribute(true)]
public class MyProjectInstaller: Installer{
   private ServiceInstaller serviceInstaller1;
   private ServiceInstaller serviceInstaller2;
   private ServiceProcessInstaller processInstaller;

   public MyProjectInstaller(){
      // Instantiate installers for process and services.
      processInstaller = new ServiceProcessInstaller();
      serviceInstaller1 = new ServiceInstaller();
      serviceInstaller2 = new ServiceInstaller();

      // The services run under the system account.
      processInstaller.Account = ServiceAccount.LocalSystem;

      // The services are started manually.
      serviceInstaller1.StartType = ServiceStartMode.Manual;
      serviceInstaller2.StartType = ServiceStartMode.Manual;

      // ServiceName must equal those on ServiceBase derived classes.
            
      serviceInstaller1.ServiceName = "Hello-World Service 1";
      serviceInstaller2.ServiceName = "Hello-World Service 2";

      // Add installers to collection. Order is not important.
      Installers.Add(serviceInstaller1);
      Installers.Add(serviceInstaller2);
      Installers.Add(processInstaller);
   }
}

#using <System.dll>
#using <System.ServiceProcess.dll>
#using <System.Configuration.Install.dll>

using namespace System;
using namespace System::Collections;
using namespace System::Configuration::Install;
using namespace System::ServiceProcess;
using namespace System::ComponentModel;

[RunInstallerAttribute(true)]
public ref class MyProjectInstaller: public
 Installer
{
private:
   ServiceInstaller^ serviceInstaller1;
   ServiceInstaller^ serviceInstaller2;
   ServiceProcessInstaller^ processInstaller;

public:
   MyProjectInstaller()
   {
      
      // Instantiate installers for process and services.
      processInstaller = gcnew ServiceProcessInstaller;
      serviceInstaller1 = gcnew ServiceInstaller;
      serviceInstaller2 = gcnew ServiceInstaller;
      
      // The services run under the system account.
      processInstaller->Account = ServiceAccount::LocalSystem;
      
      // The services are started manually.
      serviceInstaller1->StartType = ServiceStartMode::Manual;
      serviceInstaller2->StartType = ServiceStartMode::Manual;
      
      // ServiceName must equal those on ServiceBase derived classes.
            
      serviceInstaller1->ServiceName = "Hello-World Service 1";
      serviceInstaller2->ServiceName = "Hello-World Service 2";
      
      // Add installers to collection. Order is not important.
      Installers->Add( serviceInstaller1 );
      Installers->Add( serviceInstaller2 );
      Installers->Add( processInstaller );
   }

};

import System.*;
import System.Collections.*;
import System.Configuration.Install.*;
import System.ServiceProcess.*;
import System.ComponentModel.*;

/** @attribute RunInstallerAttribute(true)
 */
public class MyProjectInstaller extends Installer
{
    private ServiceInstaller serviceInstaller1;
    private ServiceInstaller serviceInstaller2;
    private ServiceProcessInstaller processInstaller;

    public MyProjectInstaller()
    {
        // Instantiate installers for process and services.
        processInstaller = new ServiceProcessInstaller();
        serviceInstaller1 = new ServiceInstaller();
        serviceInstaller2 = new ServiceInstaller();

        // The services run under the system account.
        processInstaller.set_Account(ServiceAccount.LocalSystem);

        // The services are started manually.
        serviceInstaller1.set_StartType(ServiceStartMode.Manual);
        serviceInstaller2.set_StartType(ServiceStartMode.Manual);

        // ServiceName must equal those on ServiceBase derived classes.
            
        serviceInstaller1.set_ServiceName("Hello-World Service 1");
        serviceInstaller2.set_ServiceName("Hello-World Service 2");

        // Add installers to collection. Order is not important.
        get_Installers().Add(serviceInstaller1);
        get_Installers().Add(serviceInstaller2);
        get_Installers().Add(processInstaller);
    } //MyProjectInstaller
} //MyProjectInstaller
継承階層継承階層
System.Object
   System.MarshalByRefObject
     System.ComponentModel.Component
       System.Configuration.Install.Installer
         System.Configuration.Install.ComponentInstaller
          System.ServiceProcess.ServiceProcessInstaller
スレッド セーフスレッド セーフ
この型の public static (Visual Basic では Shared) メンバはすべて、スレッド セーフです。インスタンス メンバの場合は、スレッド セーフであるとは限りません。
プラットフォームプラットフォーム
バージョン情報バージョン情報
参照参照
関連項目
ServiceProcessInstaller メンバ
System.ServiceProcess 名前空間
ServiceInstaller クラス
ServiceBase クラス
ComponentInstaller
Installers
ServiceAccount 列挙体
ServiceInstallerDialog

ServiceProcessInstaller コンストラクタ


ServiceProcessInstaller プロパティ


パブリック プロパティパブリック プロパティ

プロテクト プロパティプロテクト プロパティ
参照参照

関連項目

ServiceProcessInstaller クラス
System.ServiceProcess 名前空間
ServiceInstaller クラス
ServiceBase クラス
ComponentInstaller
Installers
ServiceAccount 列挙体
ServiceInstallerDialog

ServiceProcessInstaller メソッド


パブリック メソッドパブリック メソッド

( プロテクト メソッド も参照)
  名前 説明
パブリック メソッド Commit  派生クラスによってオーバーライドされた場合、インストール トランザクションを完了します。 ( Installer から継承されます。)
パブリック メソッド CopyFromComponent オーバーライドされます。 ServiceProcessInstaller クラス固有の動作を行わない、基本クラスの ComponentInstaller.CopyFromComponent メソッドを実装します。
パブリック メソッド CreateObjRef  リモート オブジェクトとの通信に使用するプロキシの生成に必要な情報をすべて格納しているオブジェクトを作成します。 ( MarshalByRefObject から継承されます。)
パブリック メソッド Dispose  オーバーロードされます。 Component によって使用されているリソースを解放します。 ( Component から継承されます。)
パブリック メソッド Equals  オーバーロードされます。 2 つの Object インスタンスが等しいかどうかを判断します。 ( Object から継承されます。)
パブリック メソッド GetHashCode  特定の型のハッシュ関数として機能します。GetHashCode は、ハッシュ アルゴリズムや、ハッシュ テーブルのようなデータ構造での使用に適しています。 ( Object から継承されます。)
パブリック メソッド GetLifetimeService  対象のインスタンスの有効期間ポリシーを制御する、現在の有効期間サービス オブジェクトを取得します。 ( MarshalByRefObject から継承されます。)
パブリック メソッド GetType  現在のインスタンスの Type を取得します。 ( Object から継承されます。)
パブリック メソッド InitializeLifetimeService  対象のインスタンスの有効期間ポリシーを制御する、有効期間サービス オブジェクトを取得します。 ( MarshalByRefObject から継承されます。)
パブリック メソッド Install オーバーライドされます。 サービス アプリケーション情報をレジストリに書き込みます。このメソッドは、セットアップ ツールで使用されます。セットアップ ツールは適切なメソッドを自動的に呼び出します。
パブリック メソッド IsEquivalentInstaller  指定したインストーラが、対象のインストーラと同じオブジェクトをインストールするかどうかを確認します。 ( ComponentInstaller から継承されます。)
パブリック メソッド ReferenceEquals  指定した複数の Object インスタンスが同一かどうかを判断します。 ( Object から継承されます。)
パブリック メソッド Rollback オーバーライドされます。 インストール プロシージャによってレジストリに書き込まれたサービス アプリケーション情報をロールバックします。このメソッドは、セットアップ ツールで使用されます。セットアップ ツールは適切なメソッドを自動的に処理します。
パブリック メソッド ToString  Component の名前を格納している String を返します (存在する場合)。このメソッドはオーバーライドできません。 ( Component から継承されます。)
パブリック メソッド Uninstall  派生クラスによってオーバーライドされた場合、インストール内容を削除します。 ( Installer から継承されます。)
プロテクト メソッドプロテクト メソッド
  名前 説明
プロテクト メソッド Dispose  オーバーロードされます。 Component によって使用されているリソースを解放します。 ( Component から継承されます。)
プロテクト メソッド Finalize  Component がガベージ コレクションによってクリアされる前に、アンマネージ リソースを解放し、その他のクリーンアップ操作を実行します。 ( Component から継承されます。)
プロテクト メソッド GetService  Component またはその Container で提供されるサービスを表すオブジェクトを返します。 ( Component から継承されます。)
プロテクト メソッド MemberwiseClone  オーバーロードされます。 ( MarshalByRefObject から継承されます。)
プロテクト メソッド OnAfterInstall  AfterInstall イベントを発生させます。 ( Installer から継承されます。)
プロテクト メソッド OnAfterRollback  AfterRollback イベントを発生させます。 ( Installer から継承されます。)
プロテクト メソッド OnAfterUninstall  AfterUninstall イベントを発生させます。 ( Installer から継承されます。)
プロテクト メソッド OnBeforeInstall  BeforeInstall イベントを発生させます。 ( Installer から継承されます。)
プロテクト メソッド OnBeforeRollback  BeforeRollback イベントを発生させます。 ( Installer から継承されます。)
プロテクト メソッド OnBeforeUninstall  BeforeUninstall イベントを発生させます。 ( Installer から継承されます。)
プロテクト メソッド OnCommitted  Committed イベントを発生させます。 ( Installer から継承されます。)
プロテクト メソッド OnCommitting  Committing イベントを発生させます。 ( Installer から継承されます。)
参照参照

関連項目

ServiceProcessInstaller クラス
System.ServiceProcess 名前空間
ServiceInstaller クラス
ServiceBase クラス
ComponentInstaller
Installers
ServiceAccount 列挙体
ServiceInstallerDialog

ServiceProcessInstaller メンバ

ServiceBase を拡張するクラスを含む実行可能ファイルをインストールします。このクラスは、サービス アプリケーションのインストール時に InstallUtil.exe などのインストール ユーティリティで呼び出されます。

ServiceProcessInstaller データ型で公開されるメンバを以下の表に示します。


パブリック コンストラクタパブリック コンストラクタ
  名前 説明
パブリック メソッド ServiceProcessInstaller  
パブリック プロパティパブリック プロパティ
プロテクト プロパティプロテクト プロパティ
パブリック メソッドパブリック メソッド
( プロテクト メソッド も参照)
  名前 説明
パブリック メソッド Commit  派生クラスによってオーバーライドされた場合、インストール トランザクションを完了します。 (Installer から継承されます。)
パブリック メソッド CopyFromComponent オーバーライドされます。 ServiceProcessInstaller クラス固有の動作を行わない、基本クラスの ComponentInstaller.CopyFromComponent メソッドを実装します。
パブリック メソッド CreateObjRef  リモート オブジェクトとの通信に使用するプロキシの生成に必要な情報をすべて格納しているオブジェクトを作成します。 (MarshalByRefObject から継承されます。)
パブリック メソッド Dispose  オーバーロードされます。 Component によって使用されているリソースを解放します。 (Component から継承されます。)
パブリック メソッド Equals  オーバーロードされます。 2 つの Object インスタンスが等しいかどうかを判断します。 (Object から継承されます。)
パブリック メソッド GetHashCode  特定の型のハッシュ関数として機能します。GetHashCode は、ハッシュ アルゴリズムや、ハッシュ テーブルのようなデータ構造での使用に適しています。 (Object から継承されます。)
パブリック メソッド GetLifetimeService  対象のインスタンスの有効期間ポリシーを制御する、現在の有効期間サービス オブジェクトを取得します。 (MarshalByRefObject から継承されます。)
パブリック メソッド GetType  現在のインスタンスの Type を取得します。 (Object から継承されます。)
パブリック メソッド InitializeLifetimeService  対象のインスタンスの有効期間ポリシーを制御する、有効期間サービス オブジェクトを取得します。 (MarshalByRefObject から継承されます。)
パブリック メソッド Install オーバーライドされます。 サービス アプリケーション情報をレジストリに書き込みます。このメソッドは、セットアップ ツールで使用されます。セットアップ ツールは適切なメソッドを自動的に呼び出します。
パブリック メソッド IsEquivalentInstaller  指定したインストーラが、対象のインストーラと同じオブジェクトをインストールするかどうかを確認します。 (ComponentInstaller から継承されます。)
パブリック メソッド ReferenceEquals  指定した複数の Object インスタンスが同一かどうかを判断します。 (Object から継承されます。)
パブリック メソッド Rollback オーバーライドされます。 インストール プロシージャによってレジストリに書き込まれたサービス アプリケーション情報をロールバックします。このメソッドは、セットアップ ツールで使用されます。セットアップ ツールは適切なメソッドを自動的に処理します。
パブリック メソッド ToString  Component の名前を格納している String を返します (存在する場合)。このメソッドはオーバーライドできません。 (Component から継承されます。)
パブリック メソッド Uninstall  派生クラスによってオーバーライドされた場合、インストール内容を削除します。 (Installer から継承されます。)
プロテクト メソッドプロテクト メソッド
  名前 説明
プロテクト メソッド Dispose  オーバーロードされます。 Component によって使用されているリソースを解放します。 (Component から継承されます。)
プロテクト メソッド Finalize  Component がガベージ コレクションによってクリアされる前に、アンマネージ リソースを解放し、その他のクリーンアップ操作を実行します。 (Component から継承されます。)
プロテクト メソッド GetService  Component またはその Container で提供されるサービスを表すオブジェクトを返します。 (Component から継承されます。)
プロテクト メソッド MemberwiseClone  オーバーロードされます。 ( MarshalByRefObject から継承されます。)
プロテクト メソッド OnAfterInstall  AfterInstall イベントを発生させます。 (Installer から継承されます。)
プロテクト メソッド OnAfterRollback  AfterRollback イベントを発生させます。 (Installer から継承されます。)
プロテクト メソッド OnAfterUninstall  AfterUninstall イベントを発生させます。 (Installer から継承されます。)
プロテクト メソッド OnBeforeInstall  BeforeInstall イベントを発生させます。 (Installer から継承されます。)
プロテクト メソッド OnBeforeRollback  BeforeRollback イベントを発生させます。 (Installer から継承されます。)
プロテクト メソッド OnBeforeUninstall  BeforeUninstall イベントを発生させます。 (Installer から継承されます。)
プロテクト メソッド OnCommitted  Committed イベントを発生させます。 (Installer から継承されます。)
プロテクト メソッド OnCommitting  Committing イベントを発生させます。 (Installer から継承されます。)
パブリック イベントパブリック イベント
  名前 説明
パブリック イベント AfterInstall  Installers プロパティ内のすべてのインストーラの Install メソッドが実行された後で発生します。(Installer から継承されます。)
パブリック イベント AfterRollback  Installers プロパティ内のすべてのインストーラによるインストールがロールバックされた後で発生します。(Installer から継承されます。)
パブリック イベント AfterUninstall  Installers プロパティ内のすべてのインストーラのアンインストールが実行された後で発生します。(Installer から継承されます。)
パブリック イベント BeforeInstall  インストーラ コレクション内の各インストーラの Install メソッドが実行される前に発生します。(Installer から継承されます。)
パブリック イベント BeforeRollback  Installers プロパティ内のインストーラによるインストールがロールバックされる前に発生します。(Installer から継承されます。)
パブリック イベント BeforeUninstall  Installers プロパティ内のインストーラのアンインストールが実行される前に発生します。(Installer から継承されます。)
パブリック イベント Committed  Installers プロパティ内のすべてのインストーラがインストールをコミットした後で発生します。(Installer から継承されます。)
パブリック イベント Committing  Installers プロパティ内のインストーラがインストールをコミットする前に発生します。(Installer から継承されます。)
パブリック イベント Disposed  コンポーネントの Disposed イベントを待機するイベント ハンドラを追加します。(Component から継承されます。)
参照参照

関連項目

ServiceProcessInstaller クラス
System.ServiceProcess 名前空間
ServiceInstaller クラス
ServiceBase クラス
ComponentInstaller
Installers
ServiceAccount 列挙体
ServiceInstallerDialog



英和和英テキスト翻訳

英語⇒日本語日本語⇒英語

辞書ショートカット

すべての辞書の索引

「ServiceProcessInstaller」の関連用語

ServiceProcessInstallerのお隣キーワード
検索ランキング

   

英語⇒日本語
日本語⇒英語
   



ServiceProcessInstallerのページの著作権

   
日本マイクロソフト株式会社日本マイクロソフト株式会社
© 2026 Microsoft.All rights reserved.

©2026 GRAS Group, Inc.RSS