Lesson 1 始めよう

6. 条件付きインストール

私たちは既に起動条件を取り上げました。 起動条件を使うと、指定された条件が偽である場合はインストール全体が中止されます。 条件の使い方にはもう少し洗練されたやりかたもあります。 プロセス全体を無効にせず、何をすべきかを決定するのに条件を使用するのです。 条件付きインストールを使うために、以前の単一の機能を二つに分割します — そうすれば、どちらをインストールするべきかを条件によって決定することが出来ます。

<Feature Id='Complete' Level='1'>
      <Feature Id='MainProgram' Level='1'>
        <ComponentRef Id='MainExecutable' />
      </Feature>
    
      <Feature Id='Documentation' Level='1'>
        <ComponentRef Id='Manual' />
      </Feature>
    </Feature>

今このサンプルをそのままビルドしても、何も面白い事は起きません。 MainProgram 機能が EXE と DLL および関連するショートカットをインストールし、 Documentation 機能が残りの PDF と関連するショートカットをインストールします。 つまり、結局のところ、同じファイルがインストールされます。 しかし、今まで言及しなかった Level 属性に注目して下さい。 0 でない値は インストールする を意味し、0 の値は インストールしない を意味します。 そして、既に取り上げた Condition を使用して、親の機能(条件を直接包含している Feature タグ)のレベルをその場で変更することが出来ます。 以下の例では、条件が真と評価される場合に、Level が 1 になって、インストールが実行されます。

<Feature Id='Documentation' Level='0'>
      <ComponentRef Id='Manual' />
      <Condition Level="1">FILEEXISTS</Condition>
    </Feature>

すなわち、PDF とそのショートカットは、レジストリ・エントリが示しているフォルダに Lookfor.txt というファイルが見つかった場合ににみ、インストールが実行されます。 このことをあなたのコンピュータで確認するためには、SampleCondition をダウンロードして下さい。

訳註:SampleCondition の日本語版は Sample-1-6-Condition.zip です。

ダウンロードされるサンプルでは、オリジナルも翻訳も、本文とは逆に、条件が真になった場合にはインストールしない という書き方をしています。

<Feature Id='Documentation' Level='1'>
  <ComponentRef Id='Manual' />
  <Condition Level="0">NOT FILEEXISTS</Condition>
</Feature>

実質的な動作は同じです。

既に見た全ての条件も同じように使うことが出来ます。 例えば、管理者でないユーザーに対して機能を無効化するためには、次のようにします。

<Feature Id='Documentation' Level='0'>
      <ComponentRef Id='Manual' />
      <Condition Level="1">Privileged</Condition>
    </Feature>

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

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. お静かに願います