同じコンピューター上に異なるバージョンの Visual Studio を共存させることができます。 VSPackage では、Visual Studio バージョンの任意の組み合わせをサポートできます。
VSPackage のサイド バイ サイド インストールは、共有戦略またはバージョン管理された戦略の 2 つの方法のいずれかを使用して有効にすることができます。 両方とも、Visual Studio の複数のバージョンと関連するバージョンの .NET Framework の存在に対応します。
共有戦略では、1 つの VSPackage が複数のバージョンの Visual Studio で使用するために登録されます。 バージョン管理された戦略では、サポートする Visual Studio のバージョンごとに 1 つずつ、複数の VSPackage DLL がインストールされます。
共有 VSPackage
Visual Studio の複数のバージョンで同じ VSPackage を使用する場合は、共有 VSPackage を使用することが適切です。 共有 VSPackage を実装するには、次の手順を実行する必要があります。
VSPackage を複数のバージョンの Visual Studio と互換性のあるものにします。 これを行う 2 つの方法があります。
VSPackage を、サポートする Visual Studio の最も古いバージョンの機能のみを使用するように制限します。
VSPackage をプログラムして、それが実行されている Visual Studio のバージョンに合わせて調整します。 その後、新しいサービスのクエリが失敗した場合、VSPackage は、以前のバージョンの Visual Studio でサポートされている他のサービスを提供できます。
VSPackage を適切に登録します。 詳細については、「 VSPackage の登録 」と 「マネージド VSPackage の登録」を参照してください。
ファイル拡張子を適切に登録します。 詳細については、 サイド バイ サイドデプロイのファイル名拡張子の登録を参照してください。
適切なバージョンの Visual Studio 用に VSPackage をデプロイするインストーラーを作成します。 詳細については、「Windows インストーラーとコンポーネント管理を使用した VSPackage のインストール」を参照してください。
登録の競合の問題に対処します。 詳細については、「 VSPackage の登録」を参照してください。
共有ファイルとバージョン管理されたファイルの両方が参照カウントを遵守し、複数バージョンの安全なインストールと削除を可能にするようにしてください。 詳細については、「 コンポーネント管理」を参照してください。
バージョン付きVSPackage
バージョン管理された VSPackage 戦略では、サポートする Visual Studio のバージョンごとに 1 つの VSPackage を作成します。 これは、Visual Studio の新しいバージョンで提供されるサービスを利用する場合に適しています。これは、各 VSPackage が他のバージョンに影響を与えずに進化する可能性があるためです。 ただし、1 つのコード ベースから、または複数の独立したコード ベースから複数のバイナリを作成するバージョン管理された戦略では、共有戦略よりも初期開発が必要になる場合があります。 また、インストールされている Visual Studio のバージョンと VSPackage でサポートされているバージョンを検出する単一のセットアップをバージョンごとに個別に作成する必要があるため、追加のセットアップ作業が必要になる場合があります。
バイナリ互換性
一般に、バイナリ互換性により、以前のバージョンの Visual Studio で開発されたネイティブ コードの VSPackage を、新しいバージョンの Visual Studio で実行できます。 ただし、次の 3 つの重要な例外があります。
VSPackage が特定のバージョンの共通言語ランタイムに依存している場合は、実行されている Visual Studio のバージョンを決定する必要があります。
VSPackage は、別の VSPackage または別の製品の特定の機能に依存している可能性があります。 したがって、VSPackage は依存関係が満たされている場合にのみ実行できます。
VSPackage は、Visual Studio Service Pack またはそれ以降のバージョンの Visual Studio のセキュリティ修正プログラムの影響を受ける可能性があります。 このような場合、以前のバージョンの Visual Studio SDK で開発された VSPackage は、セキュリティ修正が適用された後、Visual Studio のバージョンでは実行されない場合があります。 ただし、新しいバージョンでパッケージをリビルドし、以前のバージョンでも実行できます。
マネージド VSPackage は、Visual Studio のバージョンと Visual Studio のターゲット バージョンに一致する Visual Studio SDK を使用してビルドする必要があります。
VSPackage バイナリのバイナリ互換性の計画に加えて、ソリューションとプロジェクトのファイル形式も検討する必要があります。 VSPackage で新しいプロジェクトの種類を作成する場合は、1 つのバージョンで実行できるか、Visual Studio の複数のバージョンで実行できるかを決定する必要があります。 詳細については、「 カスタム プロジェクトのアップグレード」を参照してください。