共用方式為


專案模型的核心元件

下表會展開專案模型。 數據表會簡短描述模型中識別的介面和服務,以及與特定對象相關聯的介面和服務。 此外,數據表會根據特定項目類型的需求,詳細說明專案建立和維護中選擇性的其他介面。

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

Package 物件

介面 註解
IVsPackage 初始化 IDE 中的 VSPackage,並讓其服務可供 IDE 使用。

Project Factory 物件

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

項目物件

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

組態物件

介面 註解
IVsCfg 提供設定的相關信息。
IVsProjectCfg2 可讓專案管理組態資訊。
IVsDebuggableProjectCfg 可讓專案在調試程式的控件下執行。
IVsDeployableProjectCfg 由執行其他專案的部署作業的部署項目實作。

組態產生器物件

介面 註解
IVsBuildableProjectCfg 管理項目組態的建置作業。

其他 Project 物件

介面 註解
IDispatch

ISpecifyPropertyPages
在 [ 屬性 ] 視窗中顯示項目屬性。
IVsOutput2

IVsEnumOutputs
顯示部署的輸出。

下表提供專案模型中所識別服務的簡短描述。

服務

服務 註解
SVsRegisterProjectTypes VSPackage 用來實作項目類型,以向IDE 註冊其項目處理站存在。 呼叫 方法時IVsPackage::SetSite,VSPackage 必須呼叫QueryService此服務並註冊其項目處理站。 SetSite如果未呼叫 方法,則不會具現化您的專案。
SVsSolution 提供 IDE 內部內建概念的存取權,例如列舉專案、建立新專案、注意項目變更等等。
SVsSccManager 由想要參與原始檔控制的專案呼叫。
SVsRunningDocumentTable 維護開啟文件的數據表,以判斷是否已開啟一或多個項目專案。
SVsUIShellOpenDocument 包含呼叫的介面和方法,以實際使用標準編輯器或特定編輯器開啟項目專案。
SVsTrackProjectDocuments 當所有專案新增、移除或重新命名其專案時,都必須呼叫。
SVsFileChangeEx 管理檔案或目錄的變更,並在磁碟上變更選取的檔案時通知用戶端。
SVsQueryEditQuerySave 所有專案和編輯器都必須在變更專案或儲存專案之前呼叫。
SVsSolutionBuildManager 管理項目組態的建置和部署作業順序。
SVsShellDebugger 提供對大部分偵錯控件所使用的低階調試程式服務的存取。
SVsShellMonitorSelection 啟用 VSPackage 存取目前選取範圍的相關信息,並啟用與 [屬性] 視窗的通訊。
SVsUIShell 提供基本的 UI 相關 IDE 功能,例如建立和列舉工具視窗或文檔視窗,或向使用者報告錯誤的能力。
SVsStatusbar 提供 IDE 狀態列的存取權。
IVsExtensibility3 用來實作自動化模型。 在專案模型中,您將傳回屬性物件,讓您建立該對象的實例。
SVsUIHierWinClipboardHelper 用來在階層中的項目對象上實作剪貼簿事件。 SVsUIHierWinClipboardHelper 可讓您正確處理剪下、複製和貼上作業。

另請參閱