Microsoft Windows Installer
アドバタイズと同様に、オンデマンドでのインストールに指定された機能はユーザーが使用しようとした時点で初めてインストールされる。
パッケージが持つことのできる最も大きな単位がプロダクト (product) である。パッケージは複数のプロダクトのインストール情報を格納できる。プロダクトは全世界で一意な識別子であるGUID(PackageCodeプロパティ)で識別される。また、Windows Installerはプロダクト間の依存性については関与しない。プロダクトは複数の「コンポーネント」からなり、また複数のコンポーネントを「機能」という単位でまとめることができる。
コンポーネント (component) はプロダクトを構成する最小単位である。Windows Installerはコンポーネント単位でインストール・アンインストール処理を行う(すなわち、あるコンポーネントの一部をインストールするような設定は行えない)。コンポーネントはファイル、ディレクトリ、COMコンポーネント、レジストリキー、ショートカット、およびその他のデータを含むことができる。インストーラを起動したユーザーが直接コンポーネントを操作することはできない。
コンポーネントも、全世界で一意な識別子であるGUIDで識別される。これは、一つのコンポーネントを、一つのパッケージ内の複数の機能から、もしくは、複数のパッケージから共有できることを意味する。このような共有コンポーネントのことをマージモジュールと呼ぶ(この仕組みが正しく動作するためには、各コンポーネント間に重複した内容があってはならない)。
インストールパッケージがローカライズされている場合、InstallShield製品はMSIパッケージの追加のコピーをテンポラリフォルダに作成する。
パッケージビルダが「オンデマンドでのインストール」もしくは「修復」機能を使用するよう設定した場合、パッケージ全体(ローカライゼーションメッセージは除く)とスタブのMSIパッケージが%WinDir%\Installerディレクトリにコピーされる。
グループポリシーによって、インストールの全操作をログに取るよう設定できるが、このログは Windows のテンポラリディレクトリに作成される。このログファイルは、大きなパッケージに対して最も冗長なログを取得した場合、数十メガバイトにもなる。ログファイルは診断には便利だが、ユーザがインストーラに関係した操作(インストール、アンインストール、変更、修復、パッチ)を頻繁に行う場合、ログによるスペースの消費は馬鹿にならない。ロギングポリシーはデフォルトでは無効になっているが、顧客によるインストールプログラムのデバッグの補助のために、セットアップのブートストラッププログラムがロギングを有効にしている場合もある。
MSIインストールファイルのサイズは同等の.zipや.rar(または自己解凍形式の .exe)ファイルよりも大きくなる傾向にある。これは、強力な圧縮アルゴリズムを使用していないためである。