ポータブルアプリケーション
Windows向けソフトウェアの多くは、ポータブルな設計ではない。レジストリとMicrosoft Installerの構造が、インストールしたプログラムとマシンを結び付けてしまうためである。多くのWindowsアプリケーションはレジストリを多用しており、状態情報もファイルシステムの各所に格納している。
ポータブルアプリケーションにするためには、実行前と実行後でそのコンピュータ内のファイルに変化を与えないようにしなければならない。すなわち、レジストリを使うことはできず、アプリケーションのインストールされたディレクトリ以外にファイルを残すこともできない。可搬媒体にインストールする場合、設定をレジストリではなくINIファイルなどの設定ファイルに格納する必要がある。
アプリケーションのソース修正をせずに可搬性を実現する手法として、アプリケーション仮想化がある。これは、アプリケーションがファイルシステムやレジストリにアクセスしようとしたとき、その要求を横取り(インターセプト)し、(アプリケーション自身は知らない)別の媒体上のファイルへのアクセスに変換するランタイム層を設けるものである。