小池啓仁 ヒロヒト応援ブログ By はてな

小池啓仁(コイケヒロヒト)の動画など。

小池啓仁 ヒロヒト応援ブログ By はてな

インストール時にいろいろ処理したい(カスタム動作)!

VB2005では、カスタム動作と云って、インストール時にいろいろな処理を追加することが出来ます。


普通にWINDOWSアプリケーション等を作成した後、通常はインストーラも作らないとなりません。
また、インストーラ作成後、インストールするだけでなく、任意の処理を行いたい場合も結構ありますね!


そんな場合は、インストーラを作成した後、カスタム動作で任意の処理をインストーラへ追加することが可能です。
手順は以下の通り。

  1. WINDOWSアプリケーション等を作成する。
  2. インストーラを作成する。
  3. カスタム動作を作成する。

WINDOWSアプリケーション等作成

1は、まぁ普通に作成してください。

インストーラ作成

2は、以下のリンク先を参照してインストーラを作成してください。

基本的には、ソリューションにセットアッププロジェクトを追加して、プロジェクト出力をするのですね。
おまけ的には、スタートメニューやデスクトップにショートカットの設定をします。

◆ カスタム動作作成

3は、ソリューションエクスプローラでセットアッププロジェクトを右クリックしてカスタム動作を選択します。
すると、カスタム動作タブが現れるので、そこの『インストール』を右クリックしてカスタム動作追加を選択します。
すると、『プロジェクトから項目を選択』画面が現れるので、以下のように2回OKボタンをクリックします。

  • 『アプリケーションフォルダ』を選択してOKボタンクリック。
  • 『xxxxのプライマリ出力』を選択してOKボタンクリック。

つぎに、ソリューションエクスプローラでアプリケーションプロジェクトを右クリックしてインストーラクラスを追加します。
このインストーラクラスにインストール時に行いたいいろいろな処理を記述します。


あとは、アプリケーションプロジェクトとセットアッププロジェクトをリビルドするとmsiファイルが出来ます。
msiファイルをクリックすると、インストーラが起動され、インストールと共にインストーラクラスに記述した処理が実行されます。

◆ 留意点

尚、カスタム動作タブで『インストール』の他に『確定』『ロールバック』『アンインストール』あります。
つまり、この4つのタイミングに処理を起動することができます。
また、なぜか、『インストール』には必ず1回は『プライマリ出力』をセットします。
これをしないで『確定』や『アンインストール』等を行うとエラー(状態ファイル無し?)となります。
そのあと、『インストール』での『プライマリ出力』が必要なければ、削除します。
ちなにみ、『ロールバック』は、インストール時にエラーがあった場合に処理が起動するとのことです。

◆ デバック方法

あと、インストーラクラスのデバックは、構成マネージャでデバック指定して、インストーラクラスの先頭に以下の一行を入れてビルドします。
すると、実行時にインストーラクラスにデバッガーがアタッチするようになります。

System.Diagnostics.Debugger.Launch()

参考リンク