自分に合った予備校を選ぼう


クラ・ゼミ

機能の単位はパッケージの作成者が決定する。例えばワープロプログラムであれば、メインの実行プログラム、ヘルプファイル、オプションとしてスペルチェッカー等がそれぞれ一つの機能となる。 UIシーケンスでは、インストール先のシステムの状態を取得し、インストールウィザードを表示し、インストールのオプションをユーザーに選択させる。 ただし、UIシーケンス中では、システムに対する変更は一切行われない。これには以下の3つの理由がある。 MSIパッケージはquietモードで実行できなければならない。quietモードではGUIは全く表示されず、通常UIシーケンスで指定する情報はすべてコマンドラインから指定される。よって、ユーザインタフェース不用品回収 で行われるすべてのアクションは、quietモードでは実行されない。quietモードでのインストールを行うには、コマンドラインからmsiexec.exeを/qn(または/qb、/qr)オプション付きで実行する。 同様に、コントロールパネルのアプリケーションの追加と削除で削除ボタンを押下した場合にはアンインストーラが実行されるが、ここでもインストール時にUIシーケンスで行われたすべてのアクションは実行されない。 システムに変更を加えるアクションをUIシーケンス中で実行した場合、Elevated Privileges機能で昇格した権限ではなく、インストーラを実行したユーザの権限でシステムへの変更処理が実行されてしまう。これについては以降のセクションで述べる。 UIシーケンス中で行われるアクションと表示されるダイアログボックスはInstallUISequenceテーブル中に定義される。似たようなテーブルとしてAdminUISequenceテーブルがあり、ここでは管理インストールで実行されるアクションと表示されるダイアログボックスが定義される。 典型的なMSIインストールウィザードでは、完了またはインストールボタンを押下すると実行シーケンスが実行され、コンポーネントの実際のインストールが行われる。実行フェーズではシステムに変更が加えられる一方、ユーザインタフェースは一切表示されない。 実行フェーズは次の2つのステップに分けて実行される。: 即時実行モード このステップでは、Windows Installerは、ユーザもしくはアプリケーションからプロダクトのインストール・アンインストールに必要な命令を受け取る。リクエストが発行されるとアクション (action) のシーケンス (sequence) が粗大ごみ され、データベース内の情報から、遅延実行モードで行うべき処理を記述したスクリプトが内部的に構築される。 遅延実行モード このステップでは、即時実行モードで構築されたスクリプトが実行される。スクリプトはWindows Installerサービスが動作しているアカウント(LocalSystemアカウント)で実行される。これは、セットアップ処理を起動する方法が多岐にわたるためである。たとえば、非特権ユーザーがインストールを行う場合は特権ユーザへの昇格が必要になる(なお、特権ユーザへ昇格してインストールを行うには、パッケージがLocal administratorによってデプロイされているか、システム管理者がグループポリシーでパッケージをアドバタイズしている必要がある)。 通常のインストールで実行されるアクションのシーケンスはInstallExecuteSequenceテーブルに格納される。同様に、管理インストールで実行されるアクションはAdminExecuteSequenceテーブルに、アドバタイズされたパッケージのインストールで実行されるアクションはAdvtExecuteSequenceテーブルに格納される。 遅延実行シーケンススクリプトの実行中にエラーが発生した場合や、ユーザーの操作によって処理がキャンセルされた場合、その時点までに行われたアクションはロールバックされ、システムは元の状態に復元される。Windows Installerの標準アクションは実行時に自動的にロールバックスクリプトへの書き込みを行っており、ロールバック処理ではそのスクリプトが実行される。パッケージの作者がシステムに変更を加えるカスタムアクションを作成する場合は、対応するロールバックアクションも作成する必要がある。アンインストール用アクションにも同様にロールバック用のアクションが必要になる。このメカニズムによって、アンインストールが失敗した場合には再インストールが行われるという少し奇妙な処理が行われる。 Windows Installerでは、製品をアドバタイズ (advertise) することもできる。製品がアドバタイズされると、ユーザーからは製品がインストールされたように見えるが、実際のインストールは製品が初めて起動されるとき(スタートメニューからの起動、関連付けられたファイルを開く、アドバタイズにより設定されたCOMクラスを呼び出す等)に実行される。パッケージのアドバタイズを行うには、整体師 ポリシーまたはその他のデプロイメント機構を使用するか、msiexec.exeを/jm(すべてのユーザに対してアドバタイズ)または/ju(現在のユーザに対してアドバタイズ)オプション付きで実行する。 アドバタイズと同様に、オンデマンドでのインストールに指定された機能はユーザーが使用しようとした時点で初めてインストールされる。 管理インストールでは非圧縮の状態の製品のイメージが作成される。この機能は、主にアプリケーションをネットワークドライブからインストールまたは実行する際に用いられる。管理用インストールでは、通常のインストールとは異なり、ショートカットの作成・COMサーバの登録・「プログラムの追加と削除」への追加は行われない。管理用インストールは、展開したインストール用ソースから機能を実行する場合にしばしば使用される。 管理インストールはWindows Installerのパッチを作成する場合にも使用される。これは、バイナリファイルの差分を得るために、古いバージョンと新しいバージョンの展開済みイメージが必要になるためである。管理インストールを行うには、msiexec.exeを/aオプション付きで実行する。 Windows Installerでは、アプリケーションをネットワーク共有から直接実行することができる。ローカルへのコピーは不要であり (run from source)、以下の処理が可能である。 壊れたインストールの修復。破壊・削除されたファイルやレジストリエントリをリストアする。 コンポーネント識別子からのパスの解決。アプリケーションへのファイルパスのハードコーディングを不要にする。 ネイティブでサポートされたパッチ(.msp ファイル)と、transformsまたは.mst ファイルを使用したパッケージのデータベースの操作によるパッケージのカスタマイズ。 また、ブラックボックス部分が非常に少ない点も、他のWindows用インストーラフレームワークと比較して特筆すべき違いである。すべてのAPIとコマンドラインオプションのドキュメントが提供されている。パッケージの内容は、無償のツールや自作のプログラムから自由に閲覧・編集できる。この点は、プロプライエタリであり、弱い暗号であるとはいえ暗号化されたパッケージを使用するInstallShieldとは対照的である。ファイルアーカイブのフォーマットはCABであり、ドキュメントも豊富に提供されている。 Windows Vistaに同梱されているWindows Installer 4.0には、UACと連携するための機能が盛り込まれている。MSIパッケージを管理者権限が不要であるとマークすれば、ユーザは管理者資格情報のプロンプトを表示せずにパッケージをインストールできる。Windows Installerと再起動マネージャの連動も可能である。アプリケーションやシステムコンポーネントのインストールおよび更新を「フル」ユーザインタフェースモードで行うときは、影響を受けるアプリケーションのうちシャットダウンできるもののリストが表示され、ファイルが更新された後に再起動することができる。サイレントモードでは、インストーラのアクションによってアプリケーションは自動的に再起動される。システムサービスやトレイアプリケーションも同様に再起動が可能である。