ちょっと話をもとに戻すと、従来Visual Basic 6.0の「Distribution Wizard」機能が使われていた。これも、たとえばVisual Basicのランタイムを一緒に配布したり、必要なファイルをまとめてパッケージ化して、EXEファイルを実行すればインストールが始まるという、従来のWindows NT 4.0やWindows 95/98で使ったスタイルのインストーラです。今まで、「Distribution Wizard」がどこで使われていたかというと、たとえば企業の中で作られたアプリケーションなど、市販されているパッケージよりは、「この事業部のユーザーに対して使ってもらう」といったアプリケーションを配布するときに使われていました。
この、従来「Distribution Wizard」を使って配布していたものを止めて、ぜひ「Visual Studio Installer」を使っていただきたい。「Visual Studio Installer」が狙っているところはここであり、出している大きな理由なのです。そして、ファイルが壊れたり、起動しなくなったといった事態を解決するためのソリューションとして、Windows 2000が出てきているところがあります。OSは、Windows 9xと比べて落ちなくなったけれど、その上のアプリケーションのインストールでまた手間がかかったら、結局同じことです。そこを削減するためには、どうしても「Windows Installer」に対応していただく必要があるのです。欲を言えば、Active Directoryを入れていただければ、それを使った配布や管理もできる。「Distribution Wizard」では、当然そういったことはできないので、各PCの前にいって、「setup.exe」を起動するか、メールでそのショートカットを配布するなどしてインストールしてください、といったことしかしていないのです。
いずれにしろ、1台、1台になんらかの形でセットアッププログラムを走らせたり、ログインスクリプトを走らせるなど、方法はいろいろ考えられますが、「Active Directoryで、一斉に管理しましょう、そのために、「Windows Installer」に対応にしておきましょう」というのが、今回の「Visual Studio Installer」を配布するMicrosoftとしての、一番大きな意義です。
「Visual Studio Installer」でできることというのは、逆に言うととても限られたことが多く、できないことも多いのです。簡単な例で挙げると、アプリケーションをインストールした後に、「Install Shield」ですと、何らかのプログラムをキックして、いきなり動かすようなことができますが、それができない。通常のインストーラであれば、インストールが終わった後に、ノートパッドなどが起動して、ドキュメントが読み込まれて表示される。こういったことをするでしょう。たとえばインストール直後にReadmeなどのドキュメントの表示です。「Visual Studio Installer」ではインストール中のダイアログの中に表示することはできますが、インストールの後に、何かアプリケーションをキックするといった処理や、ユーザー登録用Webページをキックしたりといったこともできないので、市販アプリケーション開発には、サードパーティのオーサリングツールを購入するか、もしくは、SDKを使って開発していただきたいという話になります。
従来ですと、Visual Basicには「Distribution Wizard」が、また、Visual C++には機能限定バージョンの「Install Shield」が、付属していましたが、それも当然「Install Shield」と競合しているのではなくて、市販されているアプリケーションは、通常の製品版の「Install Shield」を使って、アプリケーションをオーサリングしている。そして、その市場というのは、「Windows Installer」が登場しても従来どおり残っているわけです。「Visual Studio Installer」が目指しているのは、あくまでも企業内で配布するものがメインになってくるわけです。
最初の話に戻りますが、お願いとしては「Windows Installer対応にしてください」ということです。その作業が終わった段階で、とりあえず「配布」や「修復」といった話になります。「Windows Installer」対応の次にお願いしたいのは、作ったアプリケーションに対して「自己修復」などの機能を付け加えてくださいということです。これらを付け加えることによって、さらに安定性や堅牢性、信頼性の恩恵を受けることができるわけですから。企業内開発者、一般の開発者の方には、この2ステップを踏んでいただきたい。
我々は、最初のディスクに入れられてから、最後にディスクから抜かれるまでは、安全に確実に補修ができて、しかも効率がよいものを目指している。Officeも、本当は全部「Advertised」にして、最初に使われる時はどんどんインストールし、そのうち、使用頻度にも偏りが出て来るので、だんだんCD_ROMからインストールされなくなるでしょう。使わない機能は初めて使うときだけ入れればいいというわけです。
最初のステップとしては、今持ってるアプリケーションをとりあえず動かしてみるというのが、当たり前のように行なわれると思います。しかし、そのようにして少しずつマイグレーションしていくうちの最初のステップとして、一番恩恵を受けやすいところが「Windows Installer」であり、その恩恵を受けさせられるのが「Visual Studio」だということです。
この場合には、拡張子が「.MSI」ではなくて「.exe」になりますが、通常のインストールと同じような形で、MSIファイルと通常のローダ部分をひとまとめにしたパッケージを「Visual Studio Installer」を使って作れます。Windows 2000になった瞬間に、そのまま使えて、パッケージングを変える必要はありません。当然、余計なものも含まれてはいますが、無視できますので、これを入手した後は、ターゲットがWindows 95であろうが、Windows NT 4.0であろうが、Windows 2000であろうが大丈夫です。
「Windows Installer」の構造
これらはトランザクション処理を行なっており、ロールバック用の領域が必要になる。ただし、ロールバックするかしないかは、管理者の権限で切り替えることが可能。トランザクションを行なうため、セットアップ中のファイルの書き換えや、レジストリエントリの書き換えなどを行なっていても、インストールを中止したり失敗した場合には、戻って処理することができる。万が一失敗した場合でも、このロールバック用の領域から全部復活させて、システムに悪影響を与えるといったことはなく、安全にインストールできるようになっている。
バックグラウンドプロセスで動いている「MSI Server」は、Windows 2000にはあらかじめシステムサービスとして搭載されている。Windows NT 4.0とWindows 95/95には、最初からコアモジュールとして入っていないので、再配布用のモジュールが必要になる。「setup.exe」が自動に判別して、インストーラーのコアモジュールが必要かどうか判断をした後に、MSIの再配布モジュールがインストールされる。その再配布モジュールを最初に組み込んだセットアップローダが用意されており、「Visual Studio Installer」で作られたMSIデータベースと一緒に配布できる
「Visual Studio 6 Plus Pack」
収録内容1枚目
「Windows 2000 Developerユs Readiness Kit」
2枚目
「MSDE for Visual Studio 6.0、Microsoft SQL Server 7.0 Developer Edition」
3枚目
「MSDEトレーニング」
4枚目
「Visual Studio 6.0 Service Pack3」
5~6枚目
「Windows NT 4.0 Service Pack4」
7枚目
「Microsoft SQL Server 7.0 Service Pack1」
Visual Studio 6 Plus Pack |
「Visual Studio 6 Plus Pack」の特徴
- 使用する時にコンポーネントをインストールする
- 使用頻度に合わせてデータ領域を解放する
- 自動修復などと組み合わせて利用して、インストールパッケージを作成することも可能