Lesson 3 イベントとアクション

1. 列に並んで

Windows Installer は、インストールの間に、数多くのステップ、いわゆるアクションを実行します。 基本的なアクションも、特定のインストーラによって要求される追加のアクションも、自動的にスケジュールされます (どんなアクションが追加されるかは、レジストリ・サーチやユーザー・インタフェイスなど、使用する機能によって左右されます)。 言い換えると、アクションの順序は、ツールセットによって、インストーラ・データベースが作成される時に、前もって決められます。 普通の .msi ファイルの場合は以下のようになります。

  1. AppSearch
  2. LaunchConditions
  3. ValidateProductID
  4. CostInitialize
  5. FileCost
  6. CostFinalize
  7. InstallValidate
  8. InstallInitialize
  9. ProcessComponents
  10. UnpublishFeatures
  11. RemoveShortcuts
  12. RemoveFiles
  13. InstallFiles
  14. CreateShortcuts
  15. RegisterUser
  16. RegisterProduct
  17. PublishFeatures
  18. PublishProduct
  19. InstallFinalize
  20. RemoveExistingProducts

インストーラの実際のアクションの順序は、Windows Installer SDK に入っている Orca という MSI エディタを使って確認することが出来ます。

Orca screenshot

これらのイベントの順序を変更することは、適切なタグを使うことで可能になります。実際、そういうタグが四つもあります。

  • AdminUISequence
  • InstallUISequence
  • AdminExecuteSequence
  • InstallExecuteSequence

Admin- で始まるものは、(msiexec /a で起動される)管理インストールです。 管理インストールは、アプリケーションのソース・イメージをネットワーク上に作成して、 後でワークグループのユーザーが元のメディアの代りにこのソース・イメージからインストール出来るようにします。 この機能は無料で付いてきます。 今までこの機能について思い悩んだ覚えはありませんが、私たちが作ったサンプルは全てこの方法でインストールすることが出来ます(試してみて下さい!)。

と言うわけで、差し当って残されているのは二つのタグだけです。 InstallExecuteSequence は、アクションを決定するために、常にインストーラによって参照されます。 一方、InstallUISequence は、インストーラが完全 UI モードか、簡易 UI モードで走るときだけ考慮に入れられます (この機能も実験できます。msiexec /qn, /qb および /qr を試してみて下さい)。 どんな UI のモードの場合でも、レジストリ・サーチを起動条件の前に予定しておく必要がありますので、 そのことを示す行を二つのタグの両方に挿入します。 コンパイルして、レジストリ・キーの名前を変更しながら、走らせてみて下さい。期待通りに動くはずです。

訳註:/qn, /qb, /qr, /qf は msiexec の表示オプションで、ユーザー・インタフェイスのレベルを設定します。 レベルの低い方から、/qn = UI 無し, /qb = 基本 UI, /qr = 簡易 UI, /qf = 完全 UI となります。省略時は完全 UI モードです。

上の Orca のスクリーンショットで、アクションの順序を示す番号を見ることが出来ます。 この番号を使うことも出来ますが、番号で頭を悩ますよりも、WiX にアクションの相対的な順序を指示する方がもっと簡単です。 単に、そのアクションが、どのアクションの Before または After に来るかを指定すれば良いのです。 アクションを実行のチェーンから削除したい場合は、Suppress = yes 属性を使って下さい。

<InstallExecuteSequence>
  <LaunchConditions After='AppSearch' />
  <RemoveExistingProducts After='InstallFinalize' />
</InstallExecuteSequence>

↑ 先頭  |  • 目次  |  « 前へ  |  次へ »  |  ∗ 原文

Table of Contents

1 始めよう

  1. ソフトウェア・パッケージ
  2. 中に入るファイル
  3. 使用に供する
  4. 便利な追加機能
  5. どこにインストールするか
  6. 条件付きインストール
  7. ファイルだけでなく
  8. 削除時の孤児化

2 ユーザー・インタフェイス

  1. 最初のステップ
  2. カスタムの設定
  3. UI の魔法
  4. 英語はわかりますか
  5. チェーンの新しい環
  6. 地域化を考える

3 イベントとアクション

  1. 列に並んで
  2. 追加のアクション
  3. 本に書かれていないこと
  4. コントロールをコントロールせよ
  5. マネージする方法
  6. 後の段階で

4 アップグレードとモジュラー化

  1. 古いのを探す
  2. 自分自身を置き換える
  3. パッチワーク
  4. 断片
  5. 融合するもの

5 Net と .NET

  1. .NET の枠組み
  2. ブートストラップ
  3. インターネットを起動する
  4. ウェブ・ディレクトリ
  5. サービスの提供

6 COM、式の構文、その他

  1. 違う色のコンポーネント
  2. 式の構文
  3. 書式指定文字列
  4. DDE 接続
  5. ディレクトリの作成
  6. 複数メディアのインストーラ
  7. プログラムの追加と削除の項目
  8. 新顔のユーザー
  9. 環境に優しく
  10. XML
  11. COM+ アプリケーション
  12. バージョンごとに

7 SQL

  1. データベースを作成する

8 ユーザー・インタフェイス再び

  1. 一つだけのダイアログ
  2. チューニング・アップ
  3. 相互作用
  4. カスタマイズがいっぱい
  5. これが進捗ですか
  6. よく出来ました
  7. 法律用語
  8. 順番外
  9. 英語はわかりませんか

9 トランスフォーム

  1. インストーラを変形する

10 標準ライブラリ

  1. カスタム・アクションとユーザー・インタフェイス
  2. お静かに願います