この記事は機械翻訳されています。英語版の記事を表示するには、[英語] のチェック ボックスをオンにしてください。また、テキストにマウス ポインターを合わせると、ポップアップ ウィンドウに英語のテキストを表示することもできます。
翻訳
英語

ServiceInstaller クラス

 

公開日: 2016年10月

拡張するクラスをインストール ServiceBase サービスを実装します。 このクラスは、サービス アプリケーションをインストールするときに、インストール ユーティリティによって呼び出されます。

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

System.Object
  System.MarshalByRefObject
    System.ComponentModel.Component
      System.Configuration.Install.Installer
        System.Configuration.Install.ComponentInstaller
          System.ServiceProcess.ServiceInstaller

public class ServiceInstaller : ComponentInstaller

名前説明
System_CAPS_pubmethodServiceInstaller()

ServiceInstaller クラスの新しいインスタンスを初期化します。

名前説明
System_CAPS_protpropertyCanRaiseEvents

コンポーネントがイベントを発生させることができるかどうかを示す値を取得します。(Component から継承されます。)

System_CAPS_pubpropertyContainer

取得、 IContainer を含む、 Componentです。(Component から継承されます。)

System_CAPS_pubpropertyContext

現在のインストールに関する情報を取得または設定します。(Installer から継承されます。)

System_CAPS_pubpropertyDelayedAutoStart

取得またはサービスを自動的に開始される他のサービスが実行するまでは開始遅延させるかどうかを示す値を設定します。

System_CAPS_pubpropertyDescription

取得またはサービスの説明を設定します。

System_CAPS_protpropertyDesignMode

示す値を取得するかどうか、 Component デザイン モードになっています。(Component から継承されます。)

System_CAPS_pubpropertyDisplayName

ユーザーにサービスを識別するフレンドリ名を示します。

System_CAPS_protpropertyEvents

これに関連付けられているイベント ハンドラーの一覧を取得 Componentします。(Component から継承されます。)

System_CAPS_pubpropertyHelpText

インストーラー コレクション内のすべてのインストーラーに関するヘルプ テキストを取得します。(Installer から継承されます。)

System_CAPS_pubpropertyInstallers

インストーラーが格納しているインストーラーのコレクションを取得します。(Installer から継承されます。)

System_CAPS_pubpropertyParent

インストーラーが属しているコレクションを格納しているインストーラーを取得または設定します。(Installer から継承されます。)

System_CAPS_pubpropertyServiceName

このサービスを識別するために、システムで使用される名前を示します。 このプロパティと同一である、 ServiceBase.ServiceName をインストールするサービスです。

System_CAPS_pubpropertyServicesDependedOn

このサービスを実行するために実行されているサービスを示します。

System_CAPS_pubpropertySite

取得または設定、 ISiteComponentです。(Component から継承されます。)

System_CAPS_pubpropertyStartType

このサービスを開始する方法とタイミングを示します。

名前説明
System_CAPS_pubmethodCommit(IDictionary)

派生クラスによってオーバーライドされた場合、インストール トランザクションを完了します。(Installer から継承されます。)

System_CAPS_pubmethodCopyFromComponent(IComponent)

インスタンスからプロパティをコピー ServiceBase このインストーラーにします。(ComponentInstaller.CopyFromComponent(IComponent) をオーバーライドします。)

System_CAPS_pubmethodCreateObjRef(Type)

リモート オブジェクトとの通信に使用するプロキシの生成に必要なすべての関連情報を格納しているオブジェクトを作成します。(MarshalByRefObject から継承されます。)

System_CAPS_pubmethodDispose()

Component によって使用されているすべてのリソースを解放します。(Component から継承されます。)

System_CAPS_protmethodDispose(Boolean)

Component によって使用されているアンマネージ リソースを解放し、オプションでマネージ リソースも解放します。(Component から継承されます。)

System_CAPS_pubmethodEquals(Object)

指定したオブジェクトが、現在のオブジェクトと等しいかどうかを判断します。(Object から継承されます。)

System_CAPS_protmethodFinalize()

Component がガベージ コレクションによって回収される前に、アンマネージ リソースを解放し、その他のクリーンアップ操作を実行します。(Component から継承されます。)

System_CAPS_pubmethodGetHashCode()

既定のハッシュ関数として機能します。(Object から継承されます。)

System_CAPS_pubmethodGetLifetimeService()

このインスタンスの有効期間ポリシーを制御する現在の有効期間サービス オブジェクトを取得します。(MarshalByRefObject から継承されます。)

System_CAPS_protmethodGetService(Type)

Component またはその Container で提供されるサービスを表すオブジェクトを返します。(Component から継承されます。)

System_CAPS_pubmethodGetType()

現在のインスタンスの Type を取得します。(Object から継承されます。)

System_CAPS_pubmethodInitializeLifetimeService()

このインスタンスの有効期間ポリシーを制御する有効期間サービス オブジェクトを取得します。(MarshalByRefObject から継承されます。)

System_CAPS_pubmethodInstall(IDictionary)

サービス アプリケーションの情報をレジストリに書き込むことにより、サービスをインストールします。 このメソッドは、インストール ツールは、適切なメソッドを自動的に処理が使用することはできます。(Installer.Install(IDictionary) をオーバーライドします。)

System_CAPS_pubmethodIsEquivalentInstaller(ComponentInstaller)

2 つのインストーラーが、同じサービスをインストールするかどうかを示します。(ComponentInstaller.IsEquivalentInstaller(ComponentInstaller) をオーバーライドします。)

System_CAPS_protmethodMemberwiseClone()

現在の Object の簡易コピーを作成します。(Object から継承されます。)

System_CAPS_protmethodMemberwiseClone(Boolean)

現在の簡易コピーを作成MarshalByRefObjectオブジェクト。(MarshalByRefObject から継承されます。)

System_CAPS_protmethodOnAfterInstall(IDictionary)

AfterInstall イベントを発生させます。(Installer から継承されます。)

System_CAPS_protmethodOnAfterRollback(IDictionary)

AfterRollback イベントを発生させます。(Installer から継承されます。)

System_CAPS_protmethodOnAfterUninstall(IDictionary)

AfterUninstall イベントを発生させます。(Installer から継承されます。)

System_CAPS_protmethodOnBeforeInstall(IDictionary)

BeforeInstall イベントを発生させます。(Installer から継承されます。)

System_CAPS_protmethodOnBeforeRollback(IDictionary)

BeforeRollback イベントを発生させます。(Installer から継承されます。)

System_CAPS_protmethodOnBeforeUninstall(IDictionary)

BeforeUninstall イベントを発生させます。(Installer から継承されます。)

System_CAPS_protmethodOnCommitted(IDictionary)

Committed イベントを発生させます。(Installer から継承されます。)

System_CAPS_protmethodOnCommitting(IDictionary)

Committing イベントを発生させます。(Installer から継承されます。)

System_CAPS_pubmethodRollback(IDictionary)

インストール プロシージャによって、レジストリに書き込まれたサービス アプリケーションの情報をロールバックします。 このメソッドは、インストール ツールは、適切なメソッドを自動的に処理が使用することはできます。(Installer.Rollback(IDictionary) をオーバーライドします。)

System_CAPS_pubmethodToString()

返します。、 String の名前を含む、 Component, 、存在する場合。 このメソッドはオーバーライドできません。(Component から継承されます。)

System_CAPS_pubmethodUninstall(IDictionary)

レジストリからその情報を削除することで、サービスをアンインストールします。(Installer.Uninstall(IDictionary) をオーバーライドします。)

名前説明
System_CAPS_pubeventAfterInstall

Installers プロパティ内のすべてのインストーラーの Install メソッドが実行された後で発生します。(Installer から継承されます。)

System_CAPS_pubeventAfterRollback

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

System_CAPS_pubeventAfterUninstall

Installers プロパティ内のすべてのインストーラーのアンインストールが実行された後で発生します。(Installer から継承されます。)

System_CAPS_pubeventBeforeInstall

インストーラー コレクション内の各インストーラーの Install メソッドが実行される前に発生します。(Installer から継承されます。)

System_CAPS_pubeventBeforeRollback

Installers プロパティ内のインストーラーがロールバックされる前に発生します。(Installer から継承されます。)

System_CAPS_pubeventBeforeUninstall

Installers プロパティ内のインストーラーのアンインストールが実行される前に発生します。(Installer から継承されます。)

System_CAPS_pubeventCommitted

Installers プロパティ内のすべてのインストーラーがインストールをコミットした後で発生します。(Installer から継承されます。)

System_CAPS_pubeventCommitting

Installers プロパティ内のインストーラーがインストールをコミットする前に発生します。(Installer から継承されます。)

System_CAPS_pubeventDisposed

呼び出しによってコンポーネントが破棄されるときに発生、 Dispose メソッドです。(Component から継承されます。)

ServiceInstaller が関連付けられているサービスに固有の機能です。 Hkey_local_machine \system\currentcontrolset\services レジストリ キーのサブキーにサービスに関連付けられたレジストリ値を書き込むため、インストール ユーティリティによって使用されます。 サービスは、このサブキー内で識別されます。 サブキーには、実行可能ファイルまたはサービスが属する .dll の名前も含まれています。

継承されるプロジェクト インストーラー クラスを作成、サービスをインストールする、 Installer クラス、 RunInstallerAttribute クラスに属性 trueします。 作成、プロジェクト内で ServiceProcessInstaller サービス アプリケーションと 1 つあたりのインスタンス ServiceInstaller アプリケーション内の各サービスのインスタンス。 クラスにコンス トラクター、プロジェクト インストーラー内でサービスを使用して、インストールのプロパティを設定、 ServiceProcessInstallerServiceInstaller インスタンスし、するインスタンスを追加、 Installers コレクションです。

System_CAPS_noteメモ

   インストーラーのインスタンスを追加するため、コンス トラクターを使用することをお勧めただしに追加する必要がある場合、 Installers 内のコレクション、 Install メソッドでコレクションに同じ追加機能を実行してください、 Uninstall メソッドです。

すべてのクラスから派生する、 Installer クラスの状態、 Installers コレクションが同じである必要があります、 InstallUninstall メソッドです。 ただし、コレクション間でのメンテナンスをしないようにする、 InstallUninstall メソッドするインストーラーのインスタンスを追加する場合、 Installers カスタム インストーラー クラスのコンス トラクター内のコレクション。インストール ユーティリティが呼び出されると、検索、 RunInstallerAttribute 属性です。 属性がある場合 true, 、ユーティリティに追加されたすべてのサービスのインストール、 Installers プロジェクト インストーラーに関連付けられたコレクション。 場合 RunInstallerAttributefalse か、存在しないか、インストール ユーティリティには、プロジェクト インストーラーが無視されます。

ServiceProcessInstaller プロジェクト インストールのクラスのインストール情報すべてに共通に関連付けられている ServiceInstaller プロジェクト内のインスタンス。 このサービスが何もインストール プロジェクト内の他のサービスから分離する場合、そのサービスに固有の情報は、このメソッドによってインストールされます。

System_CAPS_noteメモ

ために重要ですが、 ServiceName と同一である、 ServiceBase.ServiceName から派生したクラスの ServiceBaseです。 値では、通常、 ServiceBase.ServiceName サービス アプリケーションの実行可能ファイルの Main() 関数内で、サービスのプロパティを設定します。 サービス コントロール マネージャーを使用して、 ServiceInstaller.ServiceName プロパティをこの実行可能ファイル内のサービスを検索します。

その他のプロパティを変更する、 ServiceInstaller 前に、または後に追加すること、 Installers プロジェクト インストーラーのコレクション。 たとえば、サービスの StartType 再起動時に自動的にサービスを開始またはサービスを手動で開始するユーザーが必要に設定することがあります。

通常はないのメソッドを呼び出す ServiceInstaller 、コード内で一般的にして呼び出されただけインストール ユーティリティです。 インストール ユーティリティは、 ServiceProcessInstaller.InstallServiceInstaller.Install インストール プロセス中にメソッドです。 バックアップ実行の障害を必要に応じてを呼び出して Rollback (または ServiceInstaller.Rollback) 以前にインストールされたすべてのコンポーネントにします。

インストール ユーティリティ呼び出し Uninstall オブジェクトを削除します。

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

自動的に作成、インストールを実行するときに、 EventLogInstaller に関連付けられているイベント ログのソースをインストールする、 ServiceBase クラスを派生します。 Log このソースのプロパティで設定されて、 ServiceInstaller コンピューターのアプリケーション ログにコンス トラクターです。 設定すると、 ServiceNameServiceInstaller (と同じにする必要がありますが、 ServiceBase.ServiceName サービスの)、 Source は自動的に同じ値に設定します。 インストールの失敗では、ソースのインストールは、ロールバックを以前にインストールされているサービスと共にです。

Uninstall メソッドは実行されている場合は、サービスを停止しようとしています。 か、これが成功するかどうか Uninstall による変更を元に戻します Installします。 新しいソースは、イベント ログ用に作成されている場合は、ソースが削除されます。

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

インストーラーに追加される前に、プロセスのインストーラーおよびサービスのインストーラーで省略可能なプロパティが設定されて、 Installers コレクションです。 インストール ユーティリティにアクセスするとき MyProjectInstaller, に追加されたオブジェクト、 Installers を呼び出すことによってコレクション InstallerCollection.Add 順番でインストールされています。 処理中には、インストーラーには、それぞれのバックアップさらでインストール エラーが発生した場合、どのオブジェクトがインストールされているを示す状態情報が保持されます。

通常、プロジェクト インストーラー クラスのインスタンスを明示的に作成したはありません。 作成し、追加すると、 RunInstallerAttribute 、構文に属性しますが、実際に呼び出すし、そのため、クラスを初期化するインストール ユーティリティです。

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

[RunInstaller(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);
    }

    public static void Main()
    {
        Console.WriteLine("Usage: InstallUtil.exe [<service>.exe]");
    }
}

.NET Framework
1.1 以降で使用可能

この型のパブリック static (Visual Basic では Shared ) メンバーはスレッド セーフです。インスタンス メンバーの場合は、スレッド セーフであるとは限りません。

トップに戻る
表示: