方法 : インストール コンポーネントの既定のメソッドをオーバーライドする

更新 : 2007 年 11 月

既定では、すべてのインストール コンポーネントに次のメソッドが含まれています。

  • Install — インストーラで実行する必要があるインストール機能は、すべてこのメソッド内で実行されます。Installer1 クラス (または RunInstallerAttribute 値が true に設定されている任意のクラス) は、その中に含まれている個々のインストール コンポーネントに対して Install を呼び出し、その後、Commit (インストールがすべて成功した場合) または Rollback (なんらかのエラーが発生した場合) を呼び出します。

  • CommitCommit は、インストーラ クラスに含まれるすべてのインストール コンポーネントに対して Install メソッドが正常に実行された後に呼び出されます。この時点で、すべてのインストールが確定されます。通常は、例外の発生を避けるために、Commit メソッドでは何の処理も行いません。

  • RollbackRollback メソッドは、インストール プロセスの途中でエラーが発生した場合に、それまでのインストール作業をすべて元に戻すために使用します。インストーラ クラスに含まれるいずれかのインストール コンポーネントでエラーが発生した場合、それまでに実行されたすべてのインストールが元に戻されます。

  • UninstallUninstall は、インストール コンポーネント リソースをシステムから削除するために使用します。インストールとは異なり、アンインストールはトランザクションではありません。1 つのアンインストール プロセスが失敗した場合でも、システムは他のすべてのリソースのアンインストールを試みます。

これらの各メソッドには、必要な操作を変更せずに実行する既定の処理が含まれています。ただし、必要に応じて、各手順の処理をオーバーライドして変更できます。たとえば、ServiceBase インストール コンポーネントに対して、Commit プロシージャで実行される既定の処理を変更して、サービスが正常にインストールされた後でインストール プロセスがサービスを開始するようにできます。また、Uninstall プロシージャを変更して、アンインストールの前に各サービスを停止するようにもできます。

インストール コンポーネントの既定のメソッドをオーバーライドするには

  1. ソリューションにインストール コンポーネントを追加した後で、インストーラ クラスを開きます。

  2. 変更するインストール コンポーネントを探し、[コード エディタ] でアクセスします。

  3. 該当するメソッドをオーバーライドして、必要な機能を追加します。詳細については、「プロパティとメソッドのオーバーライド」を参照してください。

    8wz6a7y5.alert_note(ja-jp,VS.90).gifヒント :

    Installer1 クラスのメソッドをオーバーライドするときには、リソースのインストール、コミット、ロールバック、およびアンインストールに必要な元の処理を必ず保持してください。一般に、既存の機能を削除するのではなく、既存の機能にコードを追加することをお勧めします。

参照

処理手順

方法 : プロジェクトにインストール コンポーネントを追加する

方法 : インストール コンポーネントを設定する

チュートリアル : イベント ログ コンポーネントのインストール

概念

プロパティとメソッドのオーバーライド