本節比較整合至 Visual Studio 原始檔控制的兩種方式;原始檔控制外掛程式和 VSPackage,可提供原始檔控制解決方案,並醒目提示新的原始檔控制功能。 Visual Studio 允許在原始檔控制 VSPackage 和原始檔控制外掛程式之間手動切換,以及以解決方案為基礎的自動切換。
原始檔控制整合
Visual Studio 支援兩種類型的原始檔控制整合選項。 在所有版本的 Visual Studio 中,您仍然可以整合以原始檔控制外掛程式 API 為基礎的外掛程式 (先前也稱為 MSSCCI API),該外掛程式在使用 Visual Studio 原始檔控制使用者介面 (UI) 時提供基本的原始檔控制功能。 另一方面,版本控制 VSPackage 提供新的深度整合的 Visual Studio SDK 的路徑,適用於需要其版本控制模型具有高度複雜性和自主性的版本控制整合。
原始檔控制外掛程式
所有版本的 Visual Studio 都支援原始檔控制外掛程式 API 規格 1.2 版作為整合路徑。 原始檔控制外掛程式實作者會撰寫 DLL,以實作原始檔控制外掛程式 API 函式,以進行原始檔控制整合和註冊,如 建立原始檔控制外掛程式中所述。 在此方法中,整合式開發環境 (IDE) 會針對對話方塊使用 Visual Studio UI,例如簽入、簽出、工具/選項屬性頁、工具列和原始檔控制字符。 嚴格遵守原始檔控制外掛程式 API,可確保輕鬆整合至 Visual Studio,並為使用者提供無故障的體驗。 這表示原始檔控制外掛程式必須實作 API 中詳述的大部分函式和回呼。
若要使用原始檔控制外掛程式 API 實作原始檔控制外掛程式,請遵循下列步驟:
建立實作 原始檔控制外掛程式中指定函式的 DLL。
建立正確的登錄項目以註冊 DLL(如如何:安裝原始檔控制外掛程式中所述)。
建立輔助程式 UI,並在原始檔控制配接器套件(處理原始檔控制功能的 Visual Studio 元件,透過原始檔控制外掛程式)提示時顯示
為了回應原始檔控制命令,Visual Studio IDE 會呈現基本作業的標準 UI,然後透過原始檔控制外掛程式 API 中定義的函式,將資訊傳遞至原始檔控制外掛程式。 針對進階選項,可以呼叫版本控制外掛程式,以呈現其專屬的 UI,例如,搜尋或查看受版本控制的專案。 這表示在處理原始檔控制時,使用者可能會看到兩種可能不同的 UI 樣式:Visual Studio 呈現的 UI 和原始檔控制外掛程式呈現的 UI。 這在進階原始檔控制作業中最為明顯。
實作原始檔控制外掛程式的缺點
對於高級功能,用戶可能會看到兩種不同風格的界面,從而導致可能的混淆。
原始檔控制外掛程式僅限於原始檔控制外掛程式 API 所隱含的原始檔控制模型。
原始檔控制外掛程式 API 對於某些原始檔控制案例可能過於嚴格。
實作原始檔控制外掛程式的優點
Visual Studio 會提供所有基本原始檔控制作業的所有 UI,讓原始檔控制外掛程式不需要實作可能複雜的 UI。
由於嚴格的 API,原始檔控制外掛程式可以輕鬆地與外部原始檔控制程式互動,以提供更廣泛的功能;Visual Studio 不太關心原始檔控制功能如何完成,只關心它是根據原始檔控制外掛程式 API 完成的。
實作原始檔控制外掛程式比原始檔控制 VSPackage 更容易。
原始檔控制 VSPackage
Visual Studio SDK 允許深度整合到 Visual Studio,並完全控制原始檔控制功能,並完全取代 Visual Studio 提供的原始檔控制使用者介面。 原始檔控制 VSPackage 會向 Visual Studio 註冊,並提供原始檔控制功能。 雖然可以向 Visual Studio 註冊數個原始檔控制 VSPackage,但任何時候都只能其中一個處於作用中狀態。 原始檔控制 VSPackage 在作用中時,可以完全控制 Visual Studio 中的原始檔控制功能和外觀。 在系統中可能註冊的所有其他原始檔控制 VSPackage 都處於非作用中狀態,且完全不會顯示任何使用者介面。
實作原始檔控制 VSPackage 需要「全有或全無」策略。 原始檔控制 VSPackage 的建立者必須投入大量精力來實作許多原始檔控制介面和新的 UI 元素 (對話方塊、功能表和工具列) ,以涵蓋整個原始檔控制功能。 如需詳細資訊,請參閱 建立原始檔控制 VSPackage 。
實作原始檔控制 VSPackage 的缺點
VSPackage 必須實作許多複雜的介面,才能成功與 Visual Studio 整合。
VSPackage 必須提供原始檔控制所需的所有 UI;Visual Studio 不會在此領域提供任何協助。
原始檔控制 VSPackage 與 Visual Studio 密切相關聯,而且無法與獨立程式一起運作,因此無法輕鬆地與原始檔控制程式的外部版本共用功能。
實作原始檔控制 VSPackage 的優點
由於 VSPackage 可以完全控制原始檔控制 UI 和功能,因此使用者會看到原始檔控制的無縫介面。
VSPackage 不限於特定的原始檔控制模型。