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

前回のレッスンを終って、インストーラ・パッケージに関する限りでは、考えられる全てのことについて、やり方を学びました。 そうですよね? 結局の所、Windows Installer が直接的な解決を提供してくれない場合でも、 昔なじみの信頼できるコンパイラに点火して自分で書けば良いのだ、と。そうですよね?

ある意味ではその通りです。しかし、ある意味ではそうではありません。 私たちは元のインストーラ・パッケージを作る方法は知っていますが、アップグレードを出荷するとなったら何をすればよいのでしょうか? あるいは、パッチは? ユーザーに前のバージョンをアンインストールして新しいのを再インストールしてくれるように頼むのでしょうか? そして、ユーザーがソフトウェアを使っている間に設定したデータはどうなるのでしょう? 最初から全部をやり直してもらうのでしょうか?

もちろん、そうではありません。 と言うわけで、Windows Installer がそういう問題を解決するのにどのような支援をしてくれるのか、見ていきましょう。 Windows Installer は、製品の変更を三つのカテゴリに分けています。

  • スモール・アップデート は、一つまたは少数のファイルに対する小さな変更で、製品のバージョン (major.minor.build) を変更すべき理由が無いものを意味します。 Product GUID も変更する必要はありません。

    しかし、どんな点であれ、前のものと異なる .msi ファイルを作成する場合は、 常に Package GUID を変更しなければならない、という事に注意して下さい。 Windows Installer は、インストールされたプログラムを追跡して記録し、 ユーザーがインストールを変更または削除しようとしたときに、該当するプログラムを探し出すために GUID を使用します。 違うパッケージに同じ GUID を使用すると、Windows Installer を混乱させることになります。

  • マイナー・アップグレード は、製品のバージョンが変るほどの変更を意味します。 Product タグの Version 属性を修正して下さい。 製品は変りませんので Product GUID は変更する必要がありませんが、もちろん、Package GUID は新しいものを生成して下さい。
  • メジャー・アップグレード は、あるメジャー・バージョンから別のメジャー・バージョンへ、というような大幅な変更を意味します。 Version 属性、Product GUID、Package GUID の全てを変更して下さい。

メジャー・アップグレードを使うこと(換言すると、Product GUID を変更すること)を Windows Installer が強要する場合がいくつかあります — 古いバージョンと新しいバージョンをユーザーのコンピュータに共存させたい場合。 どんな理由であれ、.msi ファイルの名前を変更する場合。 パッケージに含まれるどれかの Component の GUID を変更する必要がある場合。 コンポーネントを削除した場合。 機能の階層構造に何らかの変更がある(子の機能が親から出て行ったり、親の機能が新しい子を追加したりする)場合 — これらの場合には、メジャー・アップグレードにしなければなりません。

という訳で、メジャー・アップグレードは輪郭がはっきりしていますが、 スモール・アップデートとマイナー・アップグレードの境界線はいくらか不鮮明です。 それについては、こういう風に考えて下さい。 将来の製品において、現在のバージョンと新しいバージョンを区別する必要が少しでもあるなら、マイナー・アップグレードに一票を投じましょう。 そして、いつものように、間違うなら安全な側に間違う方が良いですね。

GUID を変更するときは、古いのを記録しておいて下さい。 Windows Installer の精巧なアップグレード機能を使う時に、前の GUID が必要になります。

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

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