在 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 的範例擴充功能,請參閱專案查詢範例