ソフトウェアアプリケーションの1つまたは2つ以上の構成アイテムを自動的に検出するステップと、前記アプリケーションをパッケージ化してバーチャルアプリケーションパッケージを形成するステップと、前記バーチャルアプリケーションパッケージをデプロイして前記アプリケーションをインスタンス生成するステップと、デプロイメント構成を前記インスタンス生成したアプリケーションにおいて使用するステップと、を含み、前記デプロイメント構成は1つまたは2つ以上の構成アイテムの1つまたは2つ以上のセッティングを含むことを特徴とするコンピュータ実装方法。前記1つまたは2つ以上の構成アイテムは1つまたは2つ以上の自動的に検出される構成アイテムであり、手動操作で検出される1つまたは2つ以上の構成アイテムを示すユーザ入力に応答して、前記ソフトウェアアプリケーションのために、前記手動操作で検出される1つまたは2つ以上の構成アイテムを検出するステップをさらに含み、前記デプロイメント構成は1つまたは2つ以上の手動操作で検出される構成アイテムの1つまたは2つ以上のセッティングをさらに含むことを特徴とする請求項1に記載の方法。前記自動的に検出するステップは検出の少なくとも一部を、1つまたは2つ以上の構成アイテムの少なくとも1つに関係するサブシステムにデリゲートするステップを含むことを特徴とする請求項1に記載の方法。前記デプロイメント構成は第1のデプロイメント構成であり、第2のデプロイメント構成を前記インスタンス生成したアプリケーションにおいて使用して、前記1つまたは2つ以上の構成アイテムの1つまたは2つ以上に対するセッティングを変更するステップをさらに含み、前記第2のデプロイメント構成は前記第1のデプロイメント構成と異なることを特徴とする請求項1に記載の方法。前記1つまたは2つ以上の構成アイテムを、ユーザインタフェースデバイスを使用して提示するステップをさらに含むことを特徴とする請求項1に記載の方法。ユーザ入力を受信するステップと、前記ユーザ入力に応答して1つまたは2つ以上の構成アイテムの1つを編集するステップと、をさらに含むことを特徴とする請求項5に記載の方法。バーチャルアプリケーションパッケージをデプロイして前記アプリケーションをインスタンス生成するステップは、バーチャルアプリケーションパッケージをデプロイして前記アプリケーションを該アプリケーションの第1のインスタンスとしてインスタンス生成するステップを含み、前記デプロイメント構成を使用するステップは前記デプロイメント構成をアプリケーションの前記第1のインスタンスにおいて使用するステップを含み、前記バーチャルアプリケーションパッケージをデプロイして前記アプリケーションを該アプリケーションの第2のインスタンスとしてインスタンス生成するステップと、前記デプロイメント構成を前記アプリケーションの前記第2のインスタンスにおいて使用するステップとをさらに含むこと、を特徴とする請求項1に記載の方法。前記デプロイメント構成をアプリケーションの第1のインスタンスにおいて使用するステップとデプロイメント構成をアプリケーションの第2のインスタンスにおいて使用するステップは、1つまたは2つ以上の構成アイテムの少なくとも1つに対する異なるセッティングを前記アプリケーションの第1と第2のインスタンスにおいて使用するステップを含むことを特徴とする請求項7に記載の方法。前記アプリケーションをパッケージ化した後、ユーザインタフェースデバイスを使用して構成アイテムを提示するステップ、ユーザ入力を受信するステップ、および1つまたは2つ以上の構成アイテムの少なくとも1つに対するセッティングを前記ユーザ入力に応答して編集するステップをさらに含み、前記バーチャルアプリケーションパッケージをデプロイしてアプリケーションをインスタンス生成するステップは、該バーチャルアプリケーションパッケージをデプロイして前記アプリケーションを該アプリケーションの第1のインスタンスとしてインスタンス生成するステップを含み、前記デプロイメント構成を使用するステップは該デプロイメント構成を前記アプリケーションの第1のインスタンスとして使用するステップを含み、前記バーチャルアプリケーションパッケージをデプロイして前記アプリケーションの第2のインスタンスとしてインスタンス生成するステップと、前記デプロイメント構成をアプリケーションの第2のインスタンスにおいて使用するステップとをさらに含み、前記アプリケーションの第1のインスタンスと第2のインスタンスにおける1つまたは2つ以上の構成の少なくとも1つに対して異なるセッティングが使用されることを特徴とする請求項1に記載の方法。コンピュータ実行可能命令を有する1つまたは2つ以上のコンピュータ可読記憶媒体であって、前記コンピュータ実行可能命令が少なくとも1つのプロセッサによって実行されるとき、ソフトウェアアプリケーションをパッケージ化してバーチャルアプリケーションパッケージを形成するステップと、前記ソフトウェアアプリケーションをパッケージ化した後前記バーチャルアプリケーションパッケージのデプロイメント構成を設定するステップと、前記バーチャルアプリケーションパッケージをデプロイしてそのアプリケーションをインスタンス生成するステップと、前記デプロイメント構成をインスタンス生成したアプリケーションにおいて使用するステップと、前記少なくとも1つのプロセッサに実行させることを特徴とする1つまたは2つ以上のコンピュータ可読記憶媒体。前記デプロイメント構成を設定するステップは該デプロイメント構成における1つまたは2つ以上の構成アイテムを編集するステップを含むことを特徴とする請求項10に記載の1つまたは2つ以上のコンピュータ可読記憶媒体。前記デプロイメント構成を設定するステップはユーザ入力を受信したことに応答して実行されることを特徴とする請求項10に記載の1つまたは2つ以上のコンピュータ可読記憶媒体。パッケージ化を完了する前に前記デプロイメント構成の1つまたは2つ以上の構成アイテムを検出することをさらに含むことを特徴とする請求項10に記載の1つまたは2つ以上のコンピュータ可読記憶媒体。前記1つまたは2つ以上の構成アイテムの少なくとも1つは任意または必須とマーキングするステップをさらに含み、前記デプロイメント構成を設定するステップは、当該1つまたは2つ以上の構成アイテムの各々についてそのアイテムが必須としてマークされているかどうかを判断し、そのアイテムが必須としてマークされていれば、バーチャルアプリケーションパッケージをデプロイする前にそのアイテムのユーザ入力を要求するステップを含むことを特徴とする請求項13に記載の1つまたは2つ以上のコンピュータ可読記憶媒体。前記デプロイメント構成は第1のデプロイメント構成であり、前記バーチャルアプリケーションパッケージをデプロイしてアプリケーションをインスタンス生成するステップは、該バーチャルアプリケーションパッケージをデプロイしてアプリケーションを該アプリケーションの第1のインスタンスにおいてインスタンス生成するステップを含み、前記デプロイメント構成をインスタンス生成したアプリケーションにおいて使用するステップは第1のデプロイメント構成を前記アプリケーションの第1のインスタンスにおいて使用するステップを含み、前記ソフトウェアアプリケーションをパッケージ化した後前記バーチャルアプリケーションパッケージの第2のデプロイメント構成を設定するステップと、前記バーチャルアプリケーションパッケージをデプロイしてアプリケーションをそのアプリケーションの第2のインスタンスにおいてインスタンス生成するステップと、前記第2のデプロイメント構成を前記アプリケーションの第2のインスタンスにおいて使用するステップとをさらに含むことを特徴とする請求項10に記載の1つまたは2つ以上のコンピュータ可読記憶媒体。本明細書に説明され、請求項に記載されているツールおよび技法を使用すると、バーチャルアプリケーションパッケージとデプロイメント構成をデプロイしてアプリケーションの特定インスタンスを生成することができる。デプロイメント構成は、アプリケーションをパッケージ化するときに検出されるアイテムのように、1つまたは2つ以上の構成アイテムを含むことができる。デプロイメント構成は、バーチャルアプリケーションパッケージと共に含まれることもあれば、それとは切り離して含まれることもあり、デプロイメント構成はアプリケーションのパッケージ化の後編集されることもある。デプロイメント構成はインスタンス生成したバーチャルアプリケーションにおいて使用することができる。例えば、デプロイメント構成は、アプリケーションをデプロイしている間およびまたはアプリケーションがデプロイされた後アプリケーションを構成するために使用applyされる。ある実施形態では、ツールおよび技法は、ソフトウェアアプリケーションの構成アイテムを自動的に検出し、そのアプリケーションをパッケージ化してバーチャルアプリケーションパッケージを形成することを含む。このバーチャルアプリケーションパッケージをデプロイしてアプリケーションのインスタンスを生成する。デプロイメント構成はインスタンス生成したアプリケーションにおいて使用される。その場合、そのデプロイメント構成は構成アイテムのセッティングを含んでいる。ツールおよび技法の別の実施形態では、ソフトウェアアプリケーションをパッケージ化してバーチャルアプリケーションパッケージを形成する。アプリケーションのデプロイメント構成はそのアプリケーションをパッケージ化した後設定することができる。デプロイメント構成を設定することには、その構成を確認しおよびまたは変更することが含まれる。例えば、デプロイメント構成における構成アイテムの1つまたは2つ以上のデフォルトセッティングは、自動的に確認することも、特定のユーザ入力に応答し確認することもできる。別の例として、構成アイテムの1つまたは2つ以上のセッティングは、自動的にまたは特定のユーザ入力に応答して追加または変更するといったように、追加または変更することができる。バーチャルアプリケーションパッケージをデプロイしてアプリケーションのインスタンスを生成することもでき、そのデプロイメント構成をインスタンス生成したアプリケーションにおいて使用することができる。例えば、デプロイメント構成における構成アイテムのセッティングは、アプリケーションがデプロイされている間に例えば、デプロイメントと構成オペレーションをインタリーブすることによりおよびまたはアプリケーションパッケージがデプロイされた後にアプリケーションにおいて使用される。ツールおよび技法のさらに別の実施形態では、ソフトウェアアプリケーションの構成アイテムを検出することができる。アプリケーションをパッケージ化してバーチャルアプリケーションパッケージを形成することができる。アプリケーションをパッケージ化した後、構成アイテムはユーザインタフェースデバイスを使用して提示することができる。選択した構成アイテムはその変更を指示するユーザ入力を応答して変更することができる。さらに、バーチャルアプリケーションパッケージをデプロイしてアプリケーションをインスタンス生成することができ、構成アイテムをインスタンス生成したアプリケーションに使用することができる。この概要説明はコンセプト概念をいくつかを選んで単純化した形で紹介するためのものである。これらのコンセプトは、以下の詳細説明の個所で詳しく説明されている。この概要説明は請求項に記載の主題のキーとなる特徴または基本的機能を特定するものでもなく、請求項に記載の主題の範囲を限定するために使用されるものでもない。同様に、本発明は背景技術、詳細説明または添付図面に説明された特定の技法、ツール、環境、欠点または利点を取り扱う実装形態に限定されない。本明細書に記載の実施形態は、バーチャルアプリケーションのパッケージ化、デプロイメントおよびまたはインスタンス生成の改良のための技法およびツールを目的としている。このような改良は、種々の技法およびツールを単独にまたは組み合わせて使用するから得られることがある。このような技法およびツールは、バーチャルアプリケーションパッケージおよびデプロイメント構成をデプロイしてターゲット環境においてアプリケーションの特定インスタンスを生成可能にすることを含むことがある。例えば、ソフトウェアアプリケーションの1つまたは2つ以上の構成アイテムは自動的に検出される。これらのアイテムを含むデプロイメント構成は、アプリケーションがバーチャルアプリケーションパッケージとしてパッケージ化された後設定する。例えば、構成アイテム1つまたは2つ以上は、アプリケーションをパッケージ化した後ユーザインタフェースデバイスを使用してユーザに例えば、構成アイテム1つまたは2つ以上の表現をコンピュータディスプレイで表示することにより提示される。また、パッケージ化の後、行なうべき変更を指示するユーザ入力に応答して構成アイテム1つまたは2つ以上の1つが変更される。パッケージをデプロイしてアプリケーションのインスタンスを生成し、デプロイメント構成をそのアプリケーションインスタンスにおいて使用する。パッケージ化時に、パッケージ化エンジニアパッケージ化を実施するユーザおよびまたはパッケージャパッケージ化を実行するコンピューティングコンポーネントは一部の構成アイテムがなんであるかを知っていても、これらの構成アイテムのセッティングが特定のアプリケーションインスタンスにおいてどのようになるかを知っていないかもしれない。例えば、一部の構成アイテムは特定のマシン、ユーザまたはアプリケーションインスタンスに関係していることがある。1つの具体例として、ユーザ承認テスト組織では、アプリケーションがsqlqaと名付けたデータベースに結び付いていることがある。しかし、アプリケーションが意図するプロダクションターゲット環境で実行されるときは、そのアプリケーションがsqlproductionと名付けたデータベースに結び付いていることがある。パッケージ化時に構成アイテムを識別することにより、しかしそのパッケージをデプロイしてアプリケーションの特定インスタンスを生成するときにこれらの構成アイテムを設定し、使用することにより、そのデプロイメントを実施するアドミニストレータデプロイメントを実施するユーザは構成アイテムを識別する必要性から解放されることになる。しかし、その場合でも、アドミニストレータは構成アイテムの適切なセッティングを入力することできる。また、シングルパッケージをデプロイして、異なるマシンおよびまたはユーザを使用して異なるインスタンスをインスタンス生成することができる。これは、パッケージ自体を変更することなくただし、構成アイテムがそのパッケージに含まれる場合はその構成アイテムを変更する可能性があるが、それを除くおよびアプリケーションを再パッケージ化することなく行なわれる。例えば、これに利点があるのは、1つの一般的パッケージをパッケージ化し、テストすることができるが、そのテストした一般的パッケージを異なるデプロイメント構成セッティングと共に異なるインスタンスにデプロイできるからである。デプロイメント構成以外のパッケージ内のアイテムが各デプロイメントについて変更された場合やアプリケーションが全体的に再パッケージ化された場合は、元のテストが有効でないことがある。従って、1つまたは2つ以上の実質的利点は、本明細書に記載のツールおよび技法から実現することができる。請求項に定義した主題は、必ずしも本明細書に記載した利点に限定されない。本発明の特定の実施形態からは、本明細書に記載の利点の全部まあは一部が得られることもあれば、全く得られないこともある。種々の技法のオペレーションは、説明の便宜上、特定の連続した順序で本明細書に記載されているが、当然に理解されるように、この記載方法には、特定の順序付けが要求される場合を除き、オペレーションの順序が並べ替えられることが含まれている。例えば、連続的に記載されたオペレーションは、ケースによっては、並べ替えられることも、同時に実行されることもある。フローチャートを参照して本明細書に記載された技法は、本明細書に記載のシステムの1つまたは2つ以上と共に使用されることも、およびまたは1つまたは2つ以上の他のシステムと共に使用されることもある。例えば、本明細書に記載の種々のプロシージャはハードウェアまたはソフトウェアまたはこれらの組み合わせで実現されることがある。さらに、説明の便宜上、フローチャートは、特定の技法が他の技法と併用さるときの種々の方法を示していないことがある。I.例示コンピューティング環境図1は、上述の実施形態の1つまたは2つ以上を実施するのに適切なコンピューティング環境100の概念化した例を示す図である。例えば、このような1つまたは2つ以上のコンピューティング環境をパッケージ化環境、デプロイメント環境およびまたはターゲット環境として使用することができる。一般的に、種々の異なる汎用または特殊目的コンピューティングシステム構成が使用可能である。本明細書に記載したツールおよび技法と共に使用するのに適している周知コンピューティングシステム構成の例としては、サーバファームとサーバクラスタ、パーソナルコンピュータ、サーバコンピュータ、ハンドヘルドまたはラップトップデバイス、マルチプロセッサシステム、マイクロプロセッサベースのシステム、プログラマブルコンシューマエレクトロニクス、ネットワークPC、ミニコンピュータ、メインフレームコンピュータ、上記に挙げたシステムまたはデバイスのいずれかを含む分散コンピューティング環境などがあるが、これらに限定されない。コンピューティング環境100は、本発明が種々の汎用または特殊目的コンピューティング環境で実現されるように、本発明の使用または機能性の範囲に関して何らかの制限があることを示唆するものではない。図1に関して説明すると、コンピューティング環境100は少なくとも1つの処理ユニット110およびメモリ120を含む。図1において、この最も基本的な構成130は破線内に示される。処理ユニット110はコンピュータ実行可能命令を実行し、リアルまたはバーチャルプロセッサとすることができる。マルチ処理システムは、複数の処理ユニットがコンピュータ実行可能命令を実行して処理能力を向上させる。メモリ120は揮発性メモリ例:レジスタ、キャッシュ、RAM、不揮発性メモリ例:ROM、EEPROM、フラッシュメモリまたはこれら2メモリのなんらかの組み合わせとすることができる。メモリ120はバーチャルソフトウェアアプリケーションのデプロイメント構成を実装するソフトウェア180を格納する。図1の種々のブロックが、明確性の便宜上、ラインで囲んで示されているが、実際には、種々のコンポーネントをラインで明確に区別することはなく、比喩的には、図1および下述する他の図のラインは、もっと正確には、グレイでぼかされることになる。例えば、ディスプレイデバイスのようなプレゼンテーションコンポーネントはI/Oコンポーテントと考えることができる。また、プロセッサはメモリを備えていることがある。本明細書の発明者はこのようなことは技術の本質であると認識しており、および図1の図が本発明の1つまたは2つ以上の実施形態に関連して使用できる例示コンピューティングデバイスを単に例示したものであると繰り返しになるが主張する。ワークステーション、サーバ、ラップトップハンドヘルドデバイスなどのカテゴリ間で区別がなれていないのは、これらのすべてが図1の範囲内と考えられ、およびコンピュータ、コンピューティング環境またはコンピューティングデバイスと呼ばれるからである。コンピューティング環境100は付加的な特徴を備えることができる。図1において、コンピューティング環境100はストレージ注:記憶デバイス140、1つまたは2つ以上の入力デバイス150、1つまたは2つ以上の出力デバイス160および1つまたは2つ以上の通信コネクション170を含んでいる。バス、コントローラまたはネットワーク相互接続のような相互接続メカニズム図示せずはコンピューティング環境100のコンポーネントを相互接続している。代表例として、オペレーティングシステムソフトウェア図示せずはコンピューティング環境100で実行される他のソフトウェアのために動作環境を提供し、コンピューティング環境100のコンポーネントのアクティビティを調整する。ストレージ140は取り外し可能または取り外し不能であってもよく、磁気ディスク、磁気テープまたはカセット、CD-ROM、CD-RW、DVD、または情報をストアするために使用可能で、コンピューティング環境100内でアクセス可能なその他の媒体のように、非一時的コンピュータ可読媒体を含むことができる。ストレージ140はソフトウェア180のための命令を格納する。入力デバイス1つまたは2つ以上150は、キーボード、マウス、ペンまたはトラックボールなどのタッチ入力デバイス、音声入力デバイス、スキャニングデバイス、ネットワークアダプタ、CD/DVDリーダ、またはコンピューティング環境100に入力を提供するその他のデバイスとすることができる。出力デバイス1つまたは2つ以上160はディスプレイ、プリンタ、スピーカ、CD/DVDライタ、ネットワークアダプタ、またはコンピューティング環境100からの出力を提供するその他のデバイスである。通信ネットワーク1つまたは2つ以上170は通信媒体を利用して別のコンピューティングエンティティと通信可能にする。従って、コンピューティング環境100は、パーソナルコンピュータ、サーバ、ルータ、ネットワークPC、ピアデバイスまたは別の共通ノードなどのリモートコンピューティングデバイスとの論理的コネクションを使用したネットワーク化環境で動作する。通信媒体は、データやコンピュータ実行可能命令またはリクエストなどの情報を変調データ信号で搬送する。変調データ信号は、その特性の1つまたは2つ以上が信号のデータを符号化するような形で設定または変更されている信号である。例を挙げると、通信媒体は、電気的、光学的、RF、赤外線、音響的またはその他の搬送波で実現されたワイヤードまたはワイヤレス技法を含むが、これらに限定されない。ツールおよび技法は、コンピュータ可読媒体という一般的な文脈の中で記載される。コンピュータ可読媒体は、コンピューティング環境内でアクセス可能であれば、どのような利用可能な媒体であってもよい。例を挙げると、コンピューティング環境100では、コンピュータ可読媒体はメモリ120、ストレージ140およびこれらを組み合わせたものを含むが、これらに限定されない。上記ツールおよび技法は、コンピュータ可読命令という一般的な文脈の中でも記載される。コンピュータ可読命令はプログラムモジュールに含まれるものであり、ターゲットのリアルまたはバーチャルプロセッサ上でコンピューティング環境において実行される。一般的に、プログラムモジュールは、特定のタスクを実行し、または特定の抽象データ型を実現するルーチン、プログラム、ライブラリ、オブジェクト、クラス、コンポーネント、データ構造などを含んでいる。プログラムモジュールの機能は、種々の実施形態で望まれるように結合されることも、プログラムモジュール間で分割されることもある。プログラムモジュールに対するコンピュータ実行可能命令は、ローカルまたは分散コンピューティング環境内で実行されることがある。分散コンピューティング環境では、プログラムモジュールはローカルとリモートの両方のコンピュータ記憶媒体に置かれる。説明の便宜上、詳細説明では判断する、選択する、調整するおよび動作するのような用語を用いてコンピューティング環境におけるコンピュータオペレーションを記載している。これらの用語およびその他の類似用語はコンピュータによって実行されるオペレーションをハイレベルに抽象化したものであり、人間ユーザなどによる行為の実行が明示的に注記されている場合を除き、人間によって実行される行為と混同されるべきでない。これらの用語に対応する実際のコンピュータオペレーションは実装形態に応じて変化する。II.バーチャルソフトウェアアプリケーションデプロイメント構成システムと環境図2は、バーチャルソフトウェアアプリケーションデプロイメント構成コンピューティング環境200を示すブロック図である。バーチャルソフトウェアアプリケーションデプロイメント構成コンピューティング環境200は本明細書に記載の実施可能な実施形態の1つまたは2つ以上に関連する。コンピューティング環境200はパッケージ化環境210を含む。パッケージ化環境210では、非バーチャルアプリケーション212をパッケージャ214によってバーチャルパッケージ220にパッケージ化する。例えば、パッケージャ214は、Microsoft社のApp-Vソフトウェアのようなアプリケーションバーチャル化ソフトウェアからのパッケージャとすることができる。アプリケーション212をパッケージ化するとき、パッケージャ214は、構成アイテム232としてデプロイメント構成に組み込まれるべき1つまたは2つ以上の構成を、非バーチャルアプリケーション212中で識別する。この識別は自動的に行なわれるすなわち、構成アイテムを自動的に識別することを要求するユーザ入力によるプロンプトでこの自動的な識別が指示されることがあるとしても、サーチと識別は自動的になっている。さらに、パッケージャ214は、構成アイテム232の1つまたは2つ以上を、デプロイメント時にユーザ入力に応答して設定される必要のある必須の構成アイテムにするべきか、またはデプロイメント時にユーザ入力に応答して設定されることも設定されないこともある任意の構成アイテムにするべきかどうかを提案する。構成アイテム232の識別は、構成アイテムを任意にするか、必須にするかどうかの提案の判断と共に、パッケージャ214のサブシステムにデリゲートされることがある。デプロイメント構成230は、構成アイテムがロケーション例:ファイルまたはレジストリのロケーション別にインデックスされているXMLファイルのように、別ファイルの形体になっていることがある。これと別に、デプロイメント構成230は、複数のファイル内のように他のなんらかの形体になっていることもあれば、および/または他のアプリケーションデータおよび/またはメタデータも収めた1つまたは2つ以上のファイル内のアトリビュート属性であることもある。構成アイテム232は、図1に関連して上述した出力デバイス1つまたは2つ以上160のように、ユーザインタフェースデバイスからユーザに提示されることもある。ユーザは、デプロイメント構成230内の構成アイテムの1つまたは2つ以上を編集するためにユーザ入力を与え、構成アイテム232はユーザ入力に応答して編集する。例えば、ユーザはこれらのアイテム232の1つをデプロイメント構成230から削除すること、これらのアイテム232の名前またはラベルを変更すること、必須アイテム232を任意アイテム232に変更すること、任意アイテム232を必須アイテム232に変更すること、あるアイテム232のデフォルトセッティングを追加、変更または削除すること、またはこれらのアイテム232の1つまたは2つ以上に対してなんらかの他の変更を行なうこと、を要求するユーザ入力を与える。以下では、いくつかの特定のタイプの構成アイテム232について説明する。なお、これらの特定のタイプは単なる例示であり、他のタイプの構成アイテム32が識別されて、これらのタイプのアイテムに加えられるかまたはこれらの代わりにデプロイメント構成230に含まれることがある。1つの例として、ある構成アイテムはデータベース接続ストリングとすることができる。例えば、パッケージャ214はデータベース関連アイテムの自動的識別をパッケージャ214のデータベースサブシステムにデリゲートすることがある。データベースサブシステムはデータベース関連アイテムを探すためにサーチすることがある。例えば、データベースサブシステムは非バーチャルアプリケーション212がインストールされるときAPIコールをモニタして、これらのコールから特定のストリングを抽出する。その後、データベースサブシステムは、構成アイテムを作り出すか、あるいは複数のアプリケーションファイル例:iniおよびxmlファイルおよび複数のレジストリエントリのような複数のアプリケーション状態内で、抽出のこれらストリングに関係するアイテムを探す。ストリングが見つかったとき、データベースサブシステムはそのストリングを構成アイテム232として識別する。また、このサブシステムは、アイテム232が必須であるか任意であるかどうか、そのアイテムの名前がなんであるか、および、もしあれば、構成アイテム232に対してどのようなデフォルトセッティングを含めるべきか、といったように構成アイテム232に関係する他の判断を行なうこともある。パッケージ214は構成アイテム232をデプロイメント構成230に組み込むことができる。この組み込みをデータベースサブシステムによって実行してもよいし、構成アイテム232をデプロイメント構成230に組み込むように構成された、なんらかの他のより一般的なコンポーネントによって実行してもよい。例えば、データベース接続ストリングmydbがレジストリエントリ‘HKLMfooapp’odbcdatabasemydb内で見つかった場合は、パッケージャ214はエントリHKLfooappvalueodbcdatababsmydbをデプロイメント構成230に格納する。xmlおよびiniエレメントのように他のアイテムに類似のエントリを使用することもできる。例えば、構成アイテム232がxmlエレメントであるときは、パッケージャ214はファイルパスとXPathの式をしてロケーションを識別する。これにより、同じ名前のエレメント間の区別が可能にとなる。別の例として、パッケージャ214はapprootconfigdbxmlelement‘db’mydbのようなエントリをデプロイメント構成230に格納してもよい。別の例として、構成アイテム232をNTサービスのアカウント名とすることができ、そのNTサービスを取り扱うパッケージャ214のサブシステムがそのアカウント名を識別する。アカウント名はデプロイメント構成230内にID別にリストされ、そのIDはアプリケーションのインスタンス生成時にNTサービスコンポーネントによって認識される。例えば、アカウント名はAPIコールによって設定される。その他のタイプの構成アイテムの例として、構成アイテム232は、Microsoft社のIISによって管理されるユーザアカウントとパスワードを含んでもよい。パッケージャ214のIISサブシステムはIISによって管理されるユーザアカウントとパスワードを認識し、パッケージャ214はアカウントとパスワードの構成アイテムをデプロイメント構成8230内に組み込む。その構成アイテムは該当ID識別子別にリストアップされる。パッケージ220はデプロイメント構成230を含むことができるので、デプロイメント環境240に送ることができる。デプロイメント環境240では、デプロイメント構成230をユーザに提示することができ、デフォルトセッティングを確認する、これらのセッティングを編集するといった方法でデプロイメント構成を設定することができる。必須の構成アイテム232の場合は、これらのセッティングをユーザ入力に応答して確認および/または編集してからパッケージ220のデプロイメントに進むことを許可する必要がある。1つの例として、デプロイメント構成230はファイル例:xmlファイルに含まれることがあるので、そのファイルを編集すべきドキュメントとしてオープンし、表示する。別の方法として、デプロイメント構成のグラフィカル表現を提示してもよい例:構成アイテム232を1つまたは2つ以上のダイアログで提示することができる。ユーザ入力を例えば、パッケージ220のデプロイメントを実施するアドミニストレータから受信し、そのユーザ入力に応答して、編集コンポーネント242は、ユーザ入力の指示に従ってデプロイメント構成230内の構成アイテム232を編集する。デプロイメントコンポーネント244はパッケージを受け取り、そのパッケージをターゲット環境にデプロイする。デプロイメントコンポーネント244と編集コンポーネント242はどちらも同じソフトウェアプロダクトの一部であってもよいし、異なるソフトウェアプロダクトの一部であってもよい。例えば、編集コンポーネント242およびデプロイメント構成をユーザインタフェースデバイスから提示するコンポーネントはデータセンタマネージャソフトウェアプロダクトの一部とし、他方デプロイメントコンポーネント244はアプリケーションバーチャル化ソフトウェアプロダクトの一部とすることができる。XMLベースのデプロイメント構成ファイルを使用する別の例として、編集コンポーネント242は汎用XMLエディタのような単純なエディタにすることができ。そのエディタはデプロイメント構成ファイルを直接に表示し、編集するために使用できる。上述したように、パッケージ220をターゲット環境260にデプロイしてインスタンス生成することができる。例えば、ターゲット環境260におけるインスタンス生成はバーチャルアプリケーションホスト262によって行なうことできるが、これは編集コンポーネント242とパッケージ244も含んだアプリケーションバーチャル化ソフトウェアのクライアントコンポーネントにすることができる。具体的には、アプリケーションは、ターゲット環境260においてサンドボックス266内にバーチャルアプリケーションインスタンス264としてインスタンス生成することができる。デプロイメント構成230内の構成アイテムはバーチャルアプリケーションインスタンス264つまり、インスタンス生成したアプリケーションにおいて使用することができる。例えば、アプリケーション全体がデプロイされ、その後バーチャルアプリケーションインスタンス264として構成される。代替の方法として、パッケージ220のデプロイメントとバーチャルアプリケーションインスタンス264の構成はインタリーブすることができる。つまり、パッケージ220の一部をデプロイして構成し、以下同様に、パッケージ220の他の部分をデプロイし構成することができる。このインタリーブしたデプロイメントと構成は、アプリケーション全体がバーチャルアプリケーションインスタンス264としてインスタンス生成されるまで続ける。デプロイメント構成230を使用することは、種々の方法、すなわち、メタデータを上書きする、および/またはAPIコールを行なってアプリケーションインスタンスを構成するというような種々の方法で行なわれる。この構成は、デプロイメント環境240で行なわれることもあれば、および/またはターゲット環境260で行なわれることもある。別の例として、バーチャルアプリケーションはストレージ内に未構成ステートで残しておくことができる。デプロイメント構成情報はランタイムにアプリケーション情報とマージする。例えば、アプリケーションがiniファイルをオープンするとき、そのiniファイルをストレージから読んで、デプロイメント構成アイテム1つまたは2つ以上とマージする。マージした結果は消費のためにアプリケーションに渡すことができる。別の例として、APIコールをフックすることができ、ランタイムにデプロイメント構成230から値を戻すようにそのAPIコールの挙動を変更することができる。例えば、レジストリAPIは、デプロイメント構成アイテム232によってオーバライドされたレジストリ値をバーチャルアプリケーションインスタンス264のバーチャルプロセスがいつ読み取るかを検出するようにフックすることができる。この様な場合、デプロイメント構成アイテム232からの値がレジストリ内の値の代わりに戻される。デプロイメント構成230の識別、編集および/または使用は、上述したコンピューティング環境200とは異なる環境で行うこともできる。例えば、バーチャルアプリケーションパッケージ220はパッケージ化環境210からターゲット環境260に直接にデプロイされる。当然、バーチャルアプリケーションのパッケージ化、デプロイメント、インスタンス生成および実行はすべて同じ環境で行なわれる。III.バーチャルソフトウェアアプリケーションデプロイメント構成技法次に、いくつかのバーチャルソフトウェアアプリケーションデプロイメント構成の技法について説明する。これらの複数の技法の各々をコンピューティング環境で実行することができる。例えば、各技法は1つのコンピュータシステムにおいて実行される。このコンピュータシステムは少なくとも1つのプロセッサと1つのメモリとを含む。上記メモリは、命令、すなわち、少なくとも1つのプロセッサによって実行されるときに、少なくとも1つのプロセッサに上記技法を実行させる命令をそこに格納しているメモリは命令例:オブジェクトコードを格納しており、プロセッサ1つまたは2つ以上がこれらの命令を実行するときプロセッサ1つまたは2つ以上は前記技法を実行している。同様に、1つまたは2つ以上のコンピュータ可読記憶媒体は、少なくとも1つのプロセッサによって実行されるとき少なくとも1つのプロセッサに上記技法を実行させるコンピュータ実行可能命令を有する。以下では、図3を参照してバーチャルソフトウェアアプリケーションデプロイメント構成技法について説明する。この技法は、ソフトウェアアプリケーションの1つまたは2つ以上の構成アイテムを自動的に検出310することを含む。構成アイテム1つまたは2つ以上はユーザインタフェースデバイスを使用して提示312される。ユーザ入力が受信314され、そのユーザ入力を受信314したことに応答して、構成アイテム1つまたは2つ以上の1つを編集316する。例えば、構成の変更または編集316には、構成アイテムを削除し、その構成アイテムに関連する名前またはラベルを変更し、またはその構成アイテムのセッティングを削除、編集または変更することが含まれる。アプリケーションをパッケージ化320してバーチャルアプリケーションパッケージを形成する。アプリケーションをパッケージ化320した後、構成アイテム1つまたは2つ以上はユーザインタフェースデバイスを使用して再び提示322してもよい。また、パッケージ化320の後、ユーザ入力を受信324し、1つまたは2つ以上の構成アイテムのセッティングを編集326することもできる。構成アイテム1つまたは2つ以上のその他の特徴もその時点で編集することがある。従って、構成アイテム1つまたは2つ以上の提示、ユーザ入力の受信およびそれに応答する編集はパッケージ化320が完了する前例:パッケージ化の時点にに行なわれることもあれば、および/またはパッケージ化320の完了の後例:デプロイメントの時点にに行なわれることもある。さらに、パッケージをデプロイしてアプリケーションをインスタンス生成することがある。構成アイテム1つまたは2つ以上の1つまたは2つ以上のセッティングを含むことのあるデプロイメント構成はインスタンス生成したアプリケーションにおいて使用340することができる。パッケージを再びデプロイすると判断350された場合は、構成アイテム1つまたは2つ以上の提示322、ユーザ入力の受信324、構成アイテムのセッティング1つまたは2つ以上の編集326、パッケージのデプロイ330、およびデプロイメント構成の使用340を再び行なう。この方法は、第2のデプロイメント構成をインスタンス生成したアプリケーションにおいて使用して構成アイテム1つまたは2つ以上のセッティング1つまたは2つ以上を変更することを含むこともできる。この第2のデプロイメント構成を使用することは、インスタンス生成したアプリケーションが当初のデプロイメント構成と共に構成された後で行なうことができる。この第2のデプロイメント構成は第1のデプロイメント構成と異なることができるので、インスタンス生成したアプリケーションは第2のデプロイメント構成を使用することで再構成することができる。さらに、この方法は、アイテム1つまたは2つ以上を識別するユーザ入力に応答してソフトウェアアプリケーションの1つまたは2つ以上の構成アイテムを検出することを含むこともできる。デプロイメント構成はこれらの手操作で検出された構成アイテム1つまたは2つ以上の1つまたは2つ以上に対するセッティングをさらに含んでもよい。従って、同じパッケージをデプロイしてアプリケーションを何度もインスタンス生成し、異なるデプロイメント構成セッティングがそのアプリケーションの異なるインスタンスにおいて使用されることがある。例えば、アプリケーションは、異なった構成のターゲット環境の異なるデプロイメント構成セッティングをもつ複数のターゲット環境でインスタンス生成されるようにデプロイされることがある。従って、バーチャルアプリケーションパッケージをデプロイ330してアプリケーションをインスタンス生成することは、バーチャルアプリケーションパッケージをデプロイしてアプリケーションをそのアプリケーションの第1のインスタンスをインスタンス生成することを含むことができ、およびデプロイメント構成を使用340することは、デプロイメント構成をアプリケーションの第1のインスタンスにおいて使用することを含むことができる。この方法は、バーチャルアプリケーションソフトウェアをデプロイ330してアプリケーションをそのアプリケーションの第2のインスタンスとしてインスタンス生成し、デプロイメント構成をアプリケーションの第2のインスタンスにおいて使用340することをさらに含むことができる。また、デプロイメント構成をアプリケーションの第1のインスタンスにおいて使用340すること、およびデプロイメント構成をアプリケーションの第2のインスタンスにおいて使用340することは、構成アイテム1つまたは2つ以上の少なくとも1つの異なるセッティングをアプリケーションの第1と第2のインスタンスにおいて使用することを含むことができる。次に図4を参照して、別のバーチャルソフトウェアアプリケーションデプロイメント構成技法について説明する。この技法は、デプロイメント構成の1つまたは2つ以上の構成アイテムを検出410し、ソフトウェアアプリケーションをパッケージ化420してソフトウェアパッケージを形成することを含む。この検出410はパッケージ化420の完了前に行なう。例えば、この検出410はパッケージ化420の期間に実行されることも、および/またはパッケージ化420以前に実行されることもある。なお、この検出410は、パッケージをスキャンしてデプロイメント構成ドキュメントを識別するおよび/または作成するツールを使用するといった方法によって、パッケージ化420が完了した後実行される。この技法は、バーチャルアプリケーションパッケージのデプロイメント構成をパッケージ化420した後で設定430することを含む。デプロイメント構成を設定430することは、デプロイメント構成内の1つまたは2つ以上を編集し例えば、構成アイテム1つまたは2つ以上のセッティング1つまたは2つ以上を編集することによりおよび/またはデプロイメント構成内の既存構成アイテム1つまたは2つ以上を確認することを含むことができる。例えば、デプロイメント構成を設定430することは、ユーザ入力を受信したことに応答して行なうことができる。構成アイテム1つまたは2つ以上の少なくとも1つは任意または必須としてマークされていることがある。デプロイメント構成を設定430することは、構成アイテム1つまたは2つ以上の各々についてそのアイテムが必須としてマークされているかどうかを判断し、もしそうであれば、そのアイテムのユーザ入力を要求してからバーチャルアプリケーションパッケージをデプロイすることを含むことができる。例えば、このようなユーザ入力は既存のデフォルトセッティングを確認し、既存のデフォルトセッティングを変更し、またはデフォルトセッティングが存在したい場合にはセッティングを入力することがある。さらに、バーチャルアプリケーションパッケージをデプロイ440してアプリケーションをインスタンス生成することができ、デプロイメント構成をインスタンス生成したアプリケーションにおいて使用450することができる。パッケージは、可能ならば異なるデプロイメントに対して異なるデプロイメント構成を使用してなんどもデプロイされることがある。従って、デプロイメント構成は第1のデプロイメント構成にすることができる。バーチャルアプリケーションパッケージをデプロイ440してアプリケーションをインスタンス生成することは、バーチャルアプリケーションパッケージをデプロイしてアプリケーションの第1のインスタンスにおいてそのアプリケーションをインスタンス生成することを含むことができる。さらに、デプロイメント構成をインスタンス生成したアプリケーションにおいて使用450することは、第1のデプロイメント構成をアプリケーションの第1のインスタンスにおいて使用することを含むことができる。さらに、この技法は、ソフトウェアアプリケーションをパッケージ化した後バーチャルアプリケーションパッケージの第2のデプロイメント構成を設定し、バーチャルアプリケーションパッケージをデプロイしてアプリケーションをそのアプリケーションの第2のインスタンスにおいてインスタンス生成し、その第2のデプロイメント構成をアプリケーションの第2のインスタンスにおいて使用することを含むことができる。アプリケーションの第1のインスタンスは第1のマシン構成をもつ第1のマシン上に置くことができ、アプリケーションの第2のインスタンスは第2のマシン構成をもつ第2のマシン上に置くことができる。別の方法として、アプリケーションの第1と第2のインスタンスは同じマシン上に置かれることも、共に同じ構成をもつ異なるマシン上に置かれることもあり得る。次に図5を参照して、さらに別のバーチャルソフトウェアアプリケーションデプロイメント構成技法について説明する。この技法はソフトウェアアプリケーションの1つまたは2つ以上の構成アイテムを自動的に検出510することを含む。この検出510の一部または全部を自動的に行なうことができる。構成アイテム1つまたは2つ以上をユーザインタフェースデバイスから提示520し、構成アイテム1つまたは2つ以上の少なくとも1つを変更530する。この変更530は変更を指示するユーザ入力を受信したことに応答して行なう。アプリケーションをパッケージ化540してバーチャルアプリケーションパッケージを形成することができるが、この提示520と変更540はパッケージ化540が完了する前に行なう。さらに、構成アイテム1つまたは2つ以上は、アプリケーションをパッケージ化540した後ユーザインタフェースデバイスを使用して提示することができる。構成アイテム1つまたは2つ以上のうちの選択した構成アイテムに対する変更を指示するユーザ入力に応答して、その選択した構成アイテムを変更560する。バーチャルアプリケーションパッケージをデプロイ570してアプリケーションをインスタンス生成し、構成アイテム1つまたは2つ以上をそのインスタンス生成したアプリケーションにおいて使用580する。構造上の特徴および/または方法上のアクトに特有の表現で主題を説明してきたが、当然に理解されるように請求項に記載の主題は上述した特定の特徴またはアクトに必ずしも限定されない。むしろ、上述した特定の特徴およびアクトは請求項を実現する例示形態として記載されている。