共用方式為


專案查詢 API 概念

在 Visual Studio 中,專案是一起編譯成可執行或某種輸出形式之檔案的集合,而方案是專案的集合。 專案和方案分別以專案檔案和方案檔案的方式表示於檔案系統。 如需詳細資訊,請參閱 Visual Studio 中的方案和專案是什麼?

專案系統位於磁碟上的專案或方案檔案 (例如,.csproj.vbproj) 和各種 Visual Studio 功能之間,包括但不限於方案總管、設計工具、偵錯程式、語言服務、組建和部署。 專案系統是 Visual Studio 元件的一部分,可協助使用者處理和維護專案、執行組建來產生結果,以及測試輸出,而且幾乎所有與專案檔案中包含的檔案互動,都會透過專案系統進行。 您可以在這裡找到專案系統的詳細資訊。

專案查詢 API 的目標,是讓擴充功能擷取專案和方案的相關資料並進行變更。

您可能使用專案查詢執行的一些範例:

  • 列舉專案中的來源檔案
  • 檢查專案所參考的 NuGet 套件
  • 尋找具有一組指定功能的所有專案
  • 將新檔案新增至專案
  • 修改專案的屬性

專案查詢是一系列參考各種項目的子句。 請參閱專案查詢概觀以取得更多資訊以及常見任務的專案查詢範例。

專案查詢項目類型

您可以在專案查詢中參考許多不同的項目。 某些項目也提供子系或子集合以供參考。 例如,WorkSpace 包含 Projects 的集合,每個集合都包含 Files 的集合。

詞彙 描述
WorkSpace 提供進入點之 API 的最上層工作區。
PropertiesAvailableStatus 檢查結果中是否有屬性值的進入點。
QueryableSpace.Projects 工作區中的所有專案。
QueryableSpace.Solutions 工作區中的所有方案。
解決方案 表示 Visual Studio 中的方案。
Project 表示 Visual Studio 中的大部分專案,但方案資料夾在 VisualStudio.Extensibility 中以不同的方式表示。
SolutionFolder 表示方案資料夾,這是將 Visual Studio 方案內專案和檔案分組的虛擬資料夾。
資料夾 表示專案所包含的資料夾。
檔案 表示專案或方案資料夾所包含的檔案。
ExternalFile 表示專案所參考的外部檔案,C++ 專案尚不支援此檔案。
屬性 表示專案、組態或檔案之屬性的動態集 (弱式名稱/類型)。
RuleName 表示專案組態中的規則集。
專案參考 表示專案對專案參考,包括共用專案參考。
PackageReference 表示專案組態中的套件參考,通常是 NuGet 套件參考。
AssemblyReference 表示專案組態中參考的組件。
ConfigurationDimensionDefinition 表示宣告專案組態的值。
ProjectConfiguration 表示專案組態。
ConfigurationDimension 表示單一專案組態之每個維度的值。
OutputGroup 表示專案輸出的一個集合。
輸出 表示單一輸出群組內的一個項目。
LaunchProfile 表示專案中定義的啟動設定檔。
PropertyPage 表示專案顯示的屬性頁。
啟始專案 表示方案中定義的啟始專案。

專案查詢子句類型

專案查詢中的子句會決定輸出中應該傳回哪種項目、應該來自哪個集合、應該擁有哪個屬性,以及傳回的項目是否應為可變的。 子句也可用來限制和篩選輸出。

詞彙 描述
With 要求查詢傳回的屬性/集合值。
WithRequired 要求查詢必須傳回的屬性/集合值。
其中 要求根據述詞篩選查詢結果。
取得 Yammer 在查詢結果中獲取子項目。
QueryAsync 執行查詢,並以 IAsyncEnumerable 擷取結果。
AsQueryable 從先前擷取的物件啟動查詢。
QueryFrom 從先前擷取之物件的集合啟動查詢。
AsUpdatable 開始從查詢結果更新物件。
ExecuteAsync 執行更新查詢。

專案查詢篩選類型

篩選類型可輔助查詢結果的精簡和焦點。 請注意,下方列出的特定篩選類型可能無法用於每個查詢項目。

詞彙 描述
ConfigurationsByName 將查詢結果篩選為特定的組態名稱。
FilesByPath 將查詢結果篩選為特定的檔案路徑。
OutputGroupsByName 將查詢結果篩選為特定的輸出群組名稱。
ProjectsByCapabilities 將查詢篩選為特定的專案功能。
ProjectsByPath 將查詢結果篩選為特定的專案路徑。
ProjectsByProjectGuid 將查詢結果篩選為特定的專案 GUID。
RuleResultsByRuleName 將查詢篩選為特定的規則名稱。
跳過 透過略過,對有限的項目數執行查詢結果。

專案查詢動作類型

專案查詢中的動作會決定對專案系統所做的修改。 請注意,每個查詢項目類型都有自己的動作可供其使用。 以下是動作查詢的簡單清單。

詞彙 描述
AddAssemblyReference 表示將組件參考新增至專案的作業。
AddConfigurationDimensionValue 將新的值新增至組態維度 (例如:組態或平台)。
AddFiles 表示將現有檔案新增至專案的作業。
AddLaunchProfile 表示將新啟動設定檔新增至專案的作業。
AddPackageReference 表示將封裝參考新增至專案的作業。
AddProjectReference 表示將專案新增至專案的專案參考的作業。
AddProject 表示將專案新增至方案或方案資料夾的作業。
AddProjectReferenceByPath 表示將專案新增至專案路徑的專案參考的作業。
AddSolutionConfiguration 表示新增方案組態的作業。
建立 表示組建方案的作業。
Clean 表示清除方案的作業。
ConfigurationDimensionValue 表示設定組態維度值的作業。
CreateFile 表示在專案中建立新檔案的作業。
CreateFolder 表示在專案中建立資料夾的作業。
CreateSolutionFolder 表示將方案資料夾新增至方案或現有方案資料夾的作業。
偵錯 表示偵錯方案的作業。
DeleteConfigurationDimensionValue 從組態維度刪除值 (例如:組態或平台)。
刪除 表示刪除專案的作業。
DeleteSolutionConfiguration 表示移除方案組態的作業。
部署 表示部署方案的作業。
DuplicateLaunchProfile 表示複製現有啟動設定檔的作業。
排除 表示排除專案的作業。
重建 表示重建方案的作業。
ReloadProject 表示重新載入專案的作業。
RemoveLaunchProfile 表示從專案移除啟動設定檔的作業。
RenameFile 表示重新命名專案中檔案的作業。
RenameFolder 表示重新命名專案中資料夾的作業。
RenameSolutionFolder 表示重新命名方案資料夾的作業。
RenameProject 表示重新命名專案的作業。
執行 表示執行方案的作業。
RunCustomTool 表示執行自訂工具的作業。
儲存 表示儲存專案的作業。
SetPropertyValue 表示設定屬性值的作業。
SetCopyToLocal 表示為專案參考設定 CopyToLocal 值的作業。
SetBuildProperty 表示設定專案組態組建屬性值的作業。
SetEvaluatedUIPropertyValue 表示設定使用者可見屬性評估值的作業。
SetLaunchProfilePropertyValue 表示設定透過啟動設定檔公開之屬性值的作業。
SetPackageReferenceVersion 表示重新命名方案資料夾的作業。
SetSolutionFolderName 表示設定方案資料夾名稱的作業。
SetStartupProjects 表示設定啟動專案的作業。
SetUnevaluatedUIPropertyValue 表示設定使用者可見屬性未評估值的作業。
UnloadProject 表示卸載專案的作業。
WaitIntellisenseReady 表示等候專案或方案 Intellisense 作業進度就緒的作業。

專案查詢更新類型

這些查詢可支援對查詢結果更新的監視。

詞彙 描述
TrackUpdatesAsync 表示追蹤查詢變更的作業。

若要查看一些常見工作的專案查詢範例,請參閱專案查詢概觀

如需使用專案查詢 API 的範例擴充功能,請參閱專案查詢範例