次の方法で共有


共有 VSPackage と バージョン管理 VSPackage の選択

異なるバージョンの Visual Studio を同じコンピューター上で共存させることができます。 VSPackage では、任意のバージョンの Visual Studio を組み合わせることができます。

Vspackage のサイドバイサイドインストールは、2 つの戦略 (共有戦略またはバージョン管理された戦略) のいずれかを使用して有効にすることができます。 どちらを使用しても、複数のバージョンの Visual Studio と .NET Framework の関連バージョンを共存させることができます。

共有戦略では、1 つの VSPackage が複数のバージョンの Visual Studio 用に登録されます。 バージョン管理された戦略では、複数の VSPackage DLL がインストールされ、それぞれがサポートする Visual Studio の各バージョンに対応します。

共有 Vspackage

共有 VSPackage は、複数のバージョンの Visual Studio で同じ VSPackage を使用する場合に適しています。 共有 VSPackage を実装するには、次の手順を実行する必要があります。

  • VSPackage と複数のバージョンの Visual Studio との互換性を確保します。 これを行うには、次の 2 つの方法があります。

    • サポートする最も古いバージョンの Visual Studio の機能のみを使用するように、VSPackage を制限します。

    • VSPackage が実行されている Visual Studio のバージョンに合わせて、それをプログラムします。 これで、新しいサービスのクエリが失敗した場合に、VSPackage では、以前のバージョンの Visual Studio でサポートされている他のサービスを提供できます。

  • VSPackage を適切に登録します。 詳細については、「VSPackage の登録」およびマネージド VSPackage の登録に関するページを参照してください。

  • ファイル拡張子を適切に登録します。 詳細については、side-by-side 配置に対してファイル名拡張子を登録する方法に関するページを参照してください。

  • 適切なバージョンの Visual Studio 用の VSPackage を展開するインストーラーを作成します。 詳細については、「Windows インストーラーによる VSPackage のインストール」および「コンポーネント管理」を参照してください。

  • 登録の競合に関する問題に対処します。 詳細については、「VSPackage の登録」を参照してください。

  • 共有およびバージョン付きファイルの両方で、複数のバージョンを安全にインストールおよび削除できるように、参照カウントが考慮されていることを確認します。 詳細については、「コンポーネント管理」を参照してください。

バージョン管理された Vspackage

バージョン管理された VSPackage 戦略では、サポートする Visual Studio のバージョンごとに 1 つの VSPackage を作成します。 各 VSPackage を他に影響を与えずに拡張できるため、この方法は、以降のバージョンの Visual Studio で提供されるサービスを利用することが予想される場合に適しています。 ただし、バージョン管理された戦略では、1 つのコード ベースまたは複数の独立したコード ベースから複数のバイナリを作成するので、共有戦略に比べて多くの初期開発が必要になる場合があります。 また、追加のセットアップ作業が必要になることがあります。これは、各バージョンに対して個別のセットアップを作成するか、インストールされている Visual Studio のバージョンと VSPackage でサポートされているものを検出する 1 つのセットアップを作成する必要があるためです。

バイナリの互換性

一般に、バイナリの互換性を使用すると、以前のバージョンの 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 のどちらで実行できるようにするかを決定する必要があります。 詳細については、「カスタム プロジェクトのアップグレード」を参照してください。