在共用和設定版本的 VSPackage 之間進行選擇

不同版本的 Visual Studio 可以共存於同一部電腦上。 VSPackage 可以支援任何 Visual Studio 版本組合。

您可以透過兩種策略,即共用策略或版本設定策略,來並存安裝 VSPackage。 這兩者都可容納多個 Visual Studio 版本和 .NET Framework 的相關聯版本。

在共用策略中,會註冊一個 VSPackage 以用於多個 Visual Studio 版本。 在版本設定策略中,會安裝多個 VSPackage DLL,針對您支援的每個 Visual Studio 版本安裝一個。

共用 VSPackages

當您在多個 Visual Studio 版本中使用相同的 VSPackage 時,就適合使用共用 VSPackage。 若要實作共用 VSPackage,您必須採取下列步驟:

  • 使您的 VSPackage 與多個 Visual Studio 版本相容。 可使用兩種方式進行此操作:

    • 限制 VSPackage 只能使用您所支援的最早 Visual Studio 版本的功能。

    • 透過程式設計使您的 VSPackage 適應其執行的 Visual Studio 版本。 然後,如果查詢較新服務失敗,VSPackage 可以提供舊版 Visual Studio 中支援的其他服務。

  • 適當地註冊 VSPackage。 如需詳細資訊,請參閱 VSPackage 註冊受控 VSPackage 註冊

  • 適當地註冊副檔名。 如需詳細資訊,請參閱註冊並行部署的副檔名

  • 建立安裝程式,針對適當的 Visual Studio 版本部署 VSPackage。 如需詳細資訊,請參閱使用 Windows Installer 安裝 VSPackage元件管理

  • 解決註冊衝突的問題。 如需詳細資訊,請參閱 VSPackage 註冊

  • 請確定共用和設定版本的檔案都遵守參考計數,以允許安全安裝和移除多個版本。 如需詳細資訊,請參閱元件管理

設定版本的 VSPackages

在設定版本的 VSPackage 策略下,您可以為每個支援的 Visual Studio 版本建立一個 VSPackage。 當您預期會利用舊版 Visual Studio 所提供的服務時,就適合這麼做,因為每個 VSPackage 都可以演進,而不會影響其他版本。 不過,建立多個二進位檔的版本設定策略,無論是從單一程式碼基底或多個獨立程式碼基底,需要投入的初始開發工作可能比共用策略更多。 此外,您可能需要額外的設定工作,因為您必須為每個版本建立個別的安裝程式或單一安裝程式,偵測已安裝且 VSPackage 支援的 Visual Studio 版本。

二進位相容性

一般而言,二進位相容性可讓使用舊版 Visual Studio 開發的原生程式碼 VSPackage,在較新版本的 Visual Studio 中執行。 不過,有三個重要的例外狀況:

  • 如果您的 VSPackage 依賴特定版本的 Common Language Runtime,則必須判斷其執行中的 Visual Studio 版本。

  • VSPackage 可能相依於另一個 VSPackage 或另一個產品的特定功能。 因此,VSPackage 只能在符合相依性的地方執行。

  • VSPackage 可能會受到 Visual Studio Service Pack 或更新版本中的安全性修正所影響。 在這些情況下,使用舊版 Visual Studio SDK 開發的 VSPackage 在套用安全性修正之後,可能無法在 Visual Studio 版本中執行。 不過,您可以使用更新版本重建套件,並在舊版中執行。

    受控 VSPackage 必須使用 Visual Studio 版本和符合 Visual Studio 目標版本的 Visual Studio SDK 來建置。

    除了規劃 VSPackage 二進位檔的二進位相容性之外,您也應該考慮方案和專案檔格式。 如果您的 VSPackage 建立新的專案類型,您必須決定它是否可以在一個版本或多個 Visual Studio 版本中執行。 如需詳細資訊,請參閱升級自訂專案