泛型和特定語言專案模型的比較
.Visual Studio 增益集在 Visual Studio 2013 中已不適用。 您應該升級您的增益集至 VSPackage 擴充套件。 如需升級的詳細資訊,請參閱 常見問題集:將增益集轉換成 VSPackage 擴充功能。
Visual Studio 提供了兩種類型的專案模型:泛型專案模型和特定程式語言的專案模型。
泛型專案模型
泛型專案模型是以下列物件類型表示:
物件名稱 |
描述 |
---|---|
Projects 集合 |
表示方案中所有的專案。 |
Project 物件 |
表示方案中的專案。 |
ProjectItems 集合 |
表示指定之專案中所有的項目。 |
ProjectItem 物件 |
表示指定之專案中的一個項目。 |
這些物件可以讓您在 Visual Studio 中管理任何語言類型的專案。 使用這些物件,您可以:
儲存或刪除專案。
根據 Visual Studio 範本,為專案建立新的專案項目。
將現有檔案的專案項目加入專案。
從專案移除專案項目。
開啟、儲存及刪除專案中的專案項目。
特定語言專案模型
除了泛型專案的相關物件外,還有一組命名空間 (Namespace) 用來表示特定程式語言的專案和專案項目屬性。 這些命名空間是:
表示語言專案的主要物件是 VSProject 和 VSProject2。 VSProject2 衍生自 VSProject,而後者又衍生自 Project。 專案項目則是以 VSProjectItem 物件表示。
程式語言 |
命名空間 |
---|---|
Visual C# |
|
Visual Basic |
|
Visual C++ |
Microsoft.VisualStudio.VCProject 和 Microsoft.VisualStudio.VCProjectEngine。 |
所有程式語言 |
由於特定語言的物件是從泛型物件衍生而來,因此其操作方式基本上相同,只不過特定語言的物件還可以讓您存取泛型的 Project 和 ProjectItem 物件所無法存取的其他屬性、方法和事件。
如需如何使用特定語言專案模型的詳細資訊,請參閱專案擴充性簡介。
Visual Studio .NET Visual C++ 專案的變更
在 Visual Studio .NET 和之後的版本中,不再需要對 Visual C++ 的 ProjectItems 集合進行特殊處理。 也就是說,先前 Visual C++ Projects 集合是將所有的 Visual C++ 專案檔案儲存在平面圖式的清單中,現在則是像其他程式語言一樣以階層方式儲存這些檔案。
由於這個變更會影響現有的程式碼,在嘗試為 ProjectItems 集合加上索引以判斷某檔案是否位於該專案時,有一種方法可以在新的專案特定物件模型中模擬舊有行為。 主要的不同處是,您現在可以藉由呼叫 Visual C++ 物件中的 .Object,回到 DTE 物件模型。
[Visual Basic]
Dim proj as VCProject = DTE.ActiveSolutionProjects(1).Object
Dim fileColl as IVCCollection = proj.Files
Dim file as VCFile = fileColl.Item("MyFile.cpp")
Dim projItem as ProjectItem = file.Object