共用方式為


專案模型的核心元件

 

如需 Visual Studio 2017 的最新文件請參閱 Visual Studio 2017 文件

下表會探討專案模型。 這些表格顯示的介面和服務模型的介面和特定物件相關聯的服務中識別的簡短描述。 此外,資料表將詳細說明中的專案建立和維護,根據您的特定專案類型的需求是選用的其他介面。

如需詳細資訊,請參閱支援符號瀏覽工具

封裝物件

介面 註解
IVsPackage 初始化在 IDE 中的 VSPackage 並將其服務提供的 ide。

專案 Factory 物件

介面 註解
IVsProjectFactory 建立新的專案並開啟現有專案管理。

專案物件

介面 註解
IVsProject3 管理的新增和移除專案項目,會開啟編輯器,會維護每個文件 moniker 之間的對應,而VSITEMID。 繼承自IVsProjectIVsProject2
IVsHierarchy 管理導覽及顯示的屬性,並提供的事件。
IVsUIHierarchy 可讓命令執行類似的IOleCommandTarget例如剪下] 和 [重新命名套用只有當焦點是在 [方案總管] 中的命令。
IOleCommandTarget 做為專案階層架構的主要命令目標的介面。 這是標準的介面來查詢其狀態或狀態和執行命令的物件。 當您未在 [專案] 視窗將焦點放時可用。
IPersistFileFormat 協調專案狀態的持續性。 一般而言,專案狀態會儲存為專案檔,但不是以檔案為基礎的儲存體系統,可調整。
IVsPersistHierarchyItem2 可讓專案管理的專案項目,以磁碟或其他儲存體系統中的物件上的檔案持續性的所有層面。 IVsPeristHierarchyItem2介面用於項目不會實作IVsPersistDocData2介面。
IVsSccProject2 協調與原始程式碼控制之間的互動。
IVsProjectFlavorCfgProvider 可讓專案管理設定資訊。
IVsCfgProvider2 管理專案組態的物件,例如偵錯/發行組態。 建置、 部署和偵錯作業是透過專案組態的物件。
IVsHierarchyDeleteHandler 實作階層來控制 (破壞性) 刪除或移除的階層項目 (非破壞性) 的選項。 在呼叫查詢介面IVsHierarchyDeleteHandler介面從IVsHierarchy介面。
IVsGetCfgProvider 提供實作選擇讓支援的物件IVsCfgProvider2上不同的 COM 識別專案物件和實作介面IVsHierarchy介面。
IVsProjectStartupServices 選擇性的介面,由其他開發人員實作,以使 「 可延伸您的專案。 IVsProjectStartupServices介面可讓協力廠商 VSPackage 註冊,讓每次載入您的專案,您的專案檔和呼叫載入協力廠商服務 GUID 保存您的專案檔的 GUIDQueryService的 GUID。
IVsUIHierWinClipboardHelperEvents 來源階層中所實作UIHierarchy協調剪貼簿作業,例如剪下、 複製和貼上的視窗。 使用AdviseClipboardHelperEvents介面註冊剪貼簿的事件。
IVsHierarchyDropDataSource2 提供在 UI 階層視窗中拖放作業期間拖曳的項目相對於其資料來源的相關資訊。 從呼叫IVsHierarchy介面。
IVsHierarchyDropDataTarget 提供在 UI 階層視窗中拖放作業期間拖曳的項目相對於其置放目標的相關資訊。 從呼叫IVsHierarchy介面。

組態物件

介面 註解
IVsCfg 提供有關組態的資訊。
IVsProjectCfg2 可讓專案管理設定資訊。
IVsDebuggableProjectCfg 讓專案的偵錯工具控制下執行。
IVsDeployableProjectCfg 執行其他專案的部署作業的部署專案來實作。

設定產生器物件

介面 註解
IVsBuildableProjectCfg 管理專案組態的建立作業。

其他專案物件

介面 註解
IDispatch

 ISpecifyPropertyPages
項目中的屬性顯示屬性視窗。
IVsOutput2

 IVsEnumOutputs
顯示部署的輸出。

下表顯示專案模型中所識別之服務的簡短描述。

服務

服務 註解
SVsRegisterProjectTypes 使用 VSPackages 實作專案類型來註冊其專案 factory 存在和 IDE。 必須呼叫 VSPackageQueryService這個服務,並登錄其專案時IVsPackage::SetSite方法呼叫。 如果SetSite不會呼叫方法,您的專案未具現化。
SVsSolution 提供存取目前的方案,例如列舉專案、 建立新的專案、 專案的變更,注意等功能的 IDE 的內部、 內建概念。
SVsSccManager 想要參與原始檔控制專案所呼叫。
SVsRunningDocumentTable 會維持開啟的文件,以判斷是否一或多個專案項目已開啟的資料表。
SVsUIShellOpenDocument 包含介面和方法呼叫,以實際開啟專案項目使用標準編輯器或特定的編輯器。
SVsTrackProjectDocuments 需要這些新增、 移除或重新命名其項目時,要呼叫的所有專案。
SVsFileChangeEx 管理變更的檔案或目錄,並告知用戶端時選取的檔案在磁碟上已變更。
SVsQueryEditQuerySave 需要它們才能變更項目,或將它們儲存所有專案和編輯器所呼叫。
SVsSolutionBuildManager 管理專案組態的建置和部署作業的順序。
SVsShellDebugger 提供用於大多數的偵錯控制項的低層級偵錯工具服務的存取權。
SVsShellMonitorSelection 啟用 VSPackages 存取目前選取項目相關資訊,並啟用的通訊屬性視窗。
SVsUIShell 提供基本的 UI 相關的 IDE 功能,例如建立和列舉工具視窗或文件視窗,或是向使用者回報錯誤。
SVsStatusbar 提供存取權的 IDE 狀態列。
IVsExtensibility3 用來實作自動化模型。 在專案模式中,您將會傳回屬性物件,可讓您建立該物件的執行個體。
SVsUIHierWinClipboardHelper 用來實作專案物件階層架構中的剪貼簿的事件。 SVsUIHierWinClipboardHelper可讓您正確地控制代碼剪下、 複製和貼上作業。

另請參閱

IOleCommandTarget
檢查清單︰ 建立新的專案類型
不在建置中︰ 使用 HierUtil7 專案類別來實作專案類型 (c + +)
支援符號瀏覽工具
專案模型的項目