共用方式為


註冊和選取項目 (原始檔控制 VSPackage)

VSPackage 必須先註冊要公開 (expose) 它的原始檔控制Visual Studio。 如果註冊一個以上的原始檔控制 VSPackage 之後,使用者可以選取在適當的時間載入哪些 VSPackage。 請參閱VSPackages如需詳細資訊 VSPackages,以及如何進行註冊。

正在註冊原始檔控制套件

已登錄的原始檔控制套件,讓Visual Studio環境可以找到它,並查詢其支援的功能。 這是以配合延遲載入配置,只有當它的功能或命令都是必要或明確要求時,會建立封裝的執行個體。

VSPackages 會將資訊放入特定版本的登錄機碼,HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\X.Y,其中 x 是主要版本號碼和 y 是次要版本號碼。 這種作法可讓您以支援多個版本的並排顯示安裝Visual Studio。

Visual Studio使用者介面 (UI) 支援在多個已安裝的原始檔控制外掛程式 (透過原始檔控制配接器套件中) 中的選取範圍的原始檔控制 VSPackages 及。 可以有一個作用中的原始檔控制外掛程式或 VSPackage 一次。 但是,如下所述,IDE 會允許原始檔控制外掛程式和 VSPackages 之間切換,透過自動方案為基礎的封裝交換機制。 沒有原始檔控制 VSPackage 的一些需求,以啟用此選取範圍機制。

登錄項目

原始檔控制套件需要三個私用的 Guid:

  • 封裝 GUID: 這是主要的 GUID,套件包含來源控制項的實作 (在本章節,稱為 ID_Package)。

  • 原始檔控制 GUID: 這是原始檔控制用來向 Visual Studio 的原始檔控制虛設常式註冊的 VSPackage 的 GUID,也可當做命令 UI 內容 GUID。 原始檔控制服務的 GUID 之使用權係受原始檔控制的 GUID。 在範例中,原始檔控制 GUID 稱為 「 ID_SccProvider 」。

  • 原始檔控制服務 GUID: 這是私用的服務 (在本章節,稱為 SID_SccPkgService) 的 Visual Studio 所使用的 GUID。 除了這項目,原始檔控制套件必須為 VSPackages,工具視窗中定義其他的 Guid,依此類推。

原始檔控制 VSPackage 必須進行下列的登錄項目:

機碼名稱

項目

HKEY_LOCAL_MACHINE\
  SOFTWARE\
    Microsoft\
      VisualStudio\
        X.Y\
          SourceControlProviders\

(預設值) = rg_sz: {ID_SccProvider}

HKEY_LOCAL_MACHINE\
  SOFTWARE\
    Microsoft\
      VisualStudio\
        X.Y\
          SourceControlProviders\
            {ID_SccProvider}\

(預設值) = rg_sz: < 封裝的好記的名稱 >

服務 = rg_sz: {SID_SccPkgService}

HKEY_LOCAL_MACHINE\
  SOFTWARE\
    Microsoft\
      VisualStudio\
        X.Y\
          SourceControlProviders\
            {ID_SccProvider}\
              Name\

(預設值) = rg_sz: # < 資源 ID 的當地語系化名稱 >

封裝 = rg_sz: {ID_Package}

HKEY_LOCAL_MACHINE\
  SOFTWARE\
    Microsoft\
      VisualStudio\
        X.Y\
          SolutionPersistence\
            <PackageName>\

(請注意,索引鍵的名稱, SourceCodeControl,已經由Visual Studio ,而且無法使用這個選項,如 <PackageName>。)

(預設值) = rg_sz: {ID_Package}

選取 [原始檔控制套件

多個原始檔控制外掛程式 API 為基礎外掛? 式和原始檔的控制可能同時登錄 VSPackages。 選取原始檔控制外掛程式或 VSPackage 的程序必須確保Visual Studio載入外掛程式或 VSPackage 的適當時機,以及可以延後載入不必要的元件,除非有需要,否則。 此外, Visual Studio必須移除所有的使用者介面從其他非作用中的 VSPackages,包括功能表項目、 對話方塊及工具列],並顯示使用中的 VSPackage 的 UI。

Visual Studio執行下列作業之一時,請載入原始檔控制 VSPackage:

  • (如果方案在原始檔控制) 開啟的方案。

    開啟方案或專案原始檔控制之下時,IDE 就會造成原始檔控制方案載入指定的 VSPackage。

  • 所有的原始檔控制 VSPackage 的功能表命令來執行。

原始檔控制,VSPackage 應該會載入任何元件,它需要實際上可能要時,才使用 (否則就是指延遲載入)。

自動交換的方案為基礎的 VSPackage

您可以手動交換原始檔控制 VSPackages 到Visual Studio選項對話方塊下的原始檔控制類別。  交換則表示它已被指定為特定方案的原始檔控制套件會自動設定為 [作用中方案開啟時自動的方案為基礎封裝。 每個原始檔控制套件應該實作SetActiveSetInactive。 Visual Studio處理這兩者間切換原始檔控制外掛程式 (實作原始檔控制外掛程式 API) 和原始檔控制 VSPackages。

原始檔控制配接器套件用來切換至任何原始檔控制外掛程式的 API 架構外掛程式。 切換到 [中繼的原始檔控制配接器套件,並決定哪一個原始檔控制外掛程式的程序必須設定為作用中還是非作用中時看不到使用者。 任何的原始檔控制外掛程式正在使用中時,介面卡封裝一定會使用中。 切換兩個原始檔控制外掛? 式量只是載入和卸載外掛程式的 DLL。 切換至原始檔控制 VSPackage,不過,包括載入適當的 VSPackage 的 ide 互動。

原始檔控制開啟任何方案和 VSPackage 的登錄機碼位於方案檔時,會呼叫 VSPackage。 方案開啟時, Visual Studio尋找登錄值,並載入適當的原始檔控制 VSPackage。 所有的原始檔控制 VSPackages 必須要有上文所述的登錄項目。 受到原始檔控制的方案會標記為特定的原始檔控制 VSPackage 和關聯。 原始檔的控制必須實作 VSPackages IVsSolutionPersistence啟用自動解決方案架構 VSPackage 交換。

Visual Studio 的使用者介面套件的選取範圍,以及切換

Visual Studio提供 VSPackage 的原始檔控制的使用者介面和外掛程式選擇在選項對話方塊下的原始檔控制類別。 它可讓使用者選取使用中的原始檔控制外掛程式或 VSPackage。 下拉式清單包括:

  • 所有已安裝的原始檔控制套件

  • 所有已安裝的原始檔控制外掛程式

  • 「 無 」] 選項,它會停用原始檔控制

只有使用中的來源控制項的選擇的使用者介面是可見的。 VSPackage 的選取範圍的前一個 VSPackage 會隱藏 UI,並顯示新的使用者介面。 使用中的 VSPackage 會選取每一使用者為基礎。 如果使用者擁有多份Visual Studio同時開啟時,每一個可能使用不同的使用中 VSPackage。 如果多位使用者登入同一部電腦,每一位使用者可以有不同的執行個體Visual Studio開啟時,各有不同的使用中 VSPackage。 當多個執行個體Visual Studio中關閉的使用者時,原始檔控制的最後一個開啟的方案就會變成預設的原始檔控制要在重新啟動設定使用中的 VSPackage,當時的現用的 VSPackage。

不同於前一版的Visual Studio,IDE 重新啟動已不再切換原始檔控制 VSPackages 的唯一方法。 VSPackage 的選取範圍會自動執行。 切換套件需要 (沒有系統管理員或進階使用者) 的 Windows 使用者權限。

請參閱

參考

IVsSolutionPersistence

其他資源

原始檔控制 VSPackage 功能

建立原始檔控制外掛程式

VSPackages