Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
В Visual Studio проекты представляют собой коллекции файлов, скомпилированных вместе в исполняемый файл или другую форму выходных данных, а решения — коллекции проектов. Проекты и решения представлены в файловой системе файлами проекта и файлами решений соответственно. Дополнительные сведения см. в статье "Что такое решения и проекты в Visual Studio?".
Система проекта находится между файлом проекта или решения на диске (например, .csproj
и.vbproj
) и различными функциями Visual Studio, включая, но не ограничивается, Обозреватель решений, конструкторами, отладчиком, языковыми службами, сборкой и развертыванием. Системы проектов являются частью компонентов Visual Studio, которые помогают пользователям работать с проектами и поддерживать проекты, выполнять сборки для создания результатов, а также тестировать выходные данные, а также практически все взаимодействия, которые происходят с файлами, содержащимися в файле проекта, происходит через систему проекта. Дополнительные сведения о системах проектов см. здесь.
Цель API запросов проекта — разрешить расширениям получать данные о проектах и решениях и вносить изменения.
Некоторые примеры того, что можно сделать с помощью запроса проекта:
- Перечисление исходных файлов в проекте
- Проверьте, на какие пакеты NuGet ссылается проект
- Поиск всех проектов с заданным набором возможностей
- Добавление новых файлов в проект
- Изменение свойств проекта
Запрос проекта — это ряд предложений, ссылающихся на различные элементы. Дополнительные сведения см. в обзоре запроса проекта и примеры запросов проекта для распространенных задач.
Типы элементов запроса проекта
В запросах проекта можно ссылаться на множество различных элементов. Некоторые элементы имеют дочерние или дочерние коллекции, на которые также можно ссылаться. Например, объект WorkSpace
содержит коллекцию Projects
, каждая из которых содержит коллекцию Files
.
Срок | Description |
---|---|
Рабочей области | Рабочая область верхнего уровня API для предоставления точки входа. |
PropertiesAvailableStatus | Точка входа, проверка, доступно ли значение свойства в результате. |
QueryableSpace.Projects | Все проекты в рабочей области. |
QueryableSpace.Solutions | Все решения в рабочей области. |
Решение | Представляет решение в Visual Studio. |
Project | Представляет большинство проектов в Visual Studio, но папки решений представлены по-разному в VisualStudio.Extensibility. |
SolutionFolder | Представляет папку решения, которая является виртуальной папкой для группирования проектов и файлов в решении Visual Studio. |
Папка | Представляет папку, содержащуюся в проекте. |
Файлы | Представляет файл, содержащийся в проекте или папке решения. |
ExternalFile | Представляет внешние файлы, на которые ссылается проект, который пока не поддерживается проектами C++. |
Свойство | Представляет динамический набор (слабый тип или имя) свойств проекта, конфигурации или файла. |
RuleName | Представляет набор правил в конфигурации проекта. |
ProjectReference | Представляет ссылки на проект в проект, включая общие ссылки на проект. |
PackageReference | Представляет ссылку на пакет в конфигурации проекта, как правило, ссылку на пакет NuGet. |
AssemblyReference | Представляет указанную сборку в конфигурации проекта. |
ConfigurationDimensionDefinition | Представляет значения для объявления конфигураций проекта. |
ProjectConfiguration | Представляет конфигурацию проекта. |
ConfigurationDimension | Представляет значения каждого измерения отдельной конфигурации проекта. |
OutputGroup | Представляет одну коллекцию выходных данных проекта. |
Выходные данные | Представляет один элемент внутри одной выходной группы. |
LaunchProfile | Представляет профили запуска, определенные в проекте. |
PropertyPage | Представляет страницы свойств, отображаемые для проекта. |
Запуск проектов | Представляет определенные проекты запуска в решении. |
Типы предложений запросов проекта
Предложения в запросе проекта определяют тип элементов, возвращаемых в выходных данных, из какой коллекции они должны поступать, какие свойства они должны иметь, и следует ли изменять возвращаемые элементы. Предложения также используются для ограничения и фильтрации выходных данных.
Срок | Description |
---|---|
With | Запрашивает значение свойства или коллекции, возвращаемое из запроса. |
WithRequired | Запросы значения свойства или коллекции должны быть возвращены из запроса. |
Где | Запрашивает отфильтрованный результат запроса на основе предиката. |
Получить | Возвращает дочерние элементы вместо результата запроса. |
QueryAsync | Выполняет запрос и извлекает результат в виде IAsyncEnumerable. |
AsQueryable | Запускает запрос из предыдущего полученного объекта. |
QueryFrom | Запускает запрос из коллекции предыдущих извлеченных объектов. |
AsUpdatable | Начинает обновлять объект из результата запроса. |
ExecuteAsync | Выполняет запрос на обновление. |
Типы фильтрации запросов проекта
Типы фильтрации упрощают уточнение и фокус результатов запроса. Обратите внимание, что некоторые типы фильтрации, перечисленные ниже, могут быть недоступны для каждого элемента запроса.
Срок | Description |
---|---|
ConfigurationsByName | Фильтрует результаты запроса по определенному имени конфигурации. |
FilesByPath | Фильтрует результаты запроса по определенному пути к файлу. |
OutputGroupsByName | Фильтрует результаты запроса по определенному имени выходной группы. |
ProjectsByCapabilities | Фильтрует запрос по определенным возможностям проекта. |
ProjectsByPath | Фильтрует результаты запроса по определенному пути проекта. |
ProjectsByProjectGuid | Фильтрует результаты запроса по определенному guid проекта. |
RuleResultsByRuleName | Фильтрует запрос по определенному имени правила. |
Пропустить | Выполняет результат запроса к ограниченному количеству элементов, пропуская их. |
Типы действий запроса проекта
Действия в запросе проекта определяют, какие изменения вносятся в систему проекта. Обратите внимание, что для каждого типа элементов запроса доступны собственные действия. Ниже приведен простой список запросов действий.
Срок | Description |
---|---|
AddAssemblyReference | Представляет операцию добавления ссылки на сборку в проект. |
AddConfigurationDimensionValue | Добавляет новое значение в измерение конфигурации (например, конфигурация или платформа). |
AddFiles | Представляет операцию добавления существующего файла в проект. |
AddLaunchProfile | Представляет операцию добавления нового профиля запуска в проект. |
AddPackageReference | Представляет операцию добавления ссылки на пакет в проект. |
AddProjectReference | Представляет операцию добавления проекта в ссылку на проект. |
AddProject | Представляет операцию добавления проекта в решение или папку решения. |
AddProjectReferenceByPath | Представляет операцию добавления проекта в ссылку на проект в путь проекта. |
AddSolutionConfiguration | Представляет операцию добавления конфигурации решения. |
Сборка | Представляет операцию для создания решения. |
Очистить | Представляет операцию очистки решения. |
ConfigurationDimensionValue | Представляет операцию для задания значения измерения конфигурации. |
CreateFile | Представляет операцию создания нового файла в проекте. |
CreateFolder | Представляет операцию создания папки в проекте. |
CreateSolutionFolder | Представляет операцию добавления папки решения в решение или существующую папку решения. |
Отладка | Представляет операцию отладки решения. |
DeleteConfigurationDimensionValue | Удаляет значение из измерения конфигурации (например, конфигурация или платформа). |
Удаление | Представляет операцию удаления проекта. |
DeleteSolutionConfiguration | Представляет операцию удаления конфигурации решения. |
Развернуть | Представляет операцию развертывания решения. |
ДубликатLaunchProfile | Представляет операцию для дублирования существующего профиля запуска. |
Исключить | Представляет операцию исключения проекта. |
Перестроение | Представляет операцию перестроения решения. |
ReloadProject | Представляет операцию перезагрузки проекта. |
RemoveLaunchProfile | Представляет операцию удаления профиля запуска из проекта. |
RenameFile | Представляет операцию переименования файла в проекте. |
ПереименованиеFolder | Представляет операцию переименования папки в проекте. |
RenameSolutionFolder | Представляет операцию переименования папки решения. |
ПереименоватьProject | Представляет операцию переименования проекта. |
Выполнить | Представляет операцию запуска решения. |
RunCustomTool | Представляет операцию для запуска настраиваемого средства. |
Сохранить | Представляет операцию сохранения проекта. |
SetPropertyValue | Представляет операцию для задания значения свойства. |
SetCopyToLocal | Представляет операцию задания значения CopyToLocal для ссылки на проект. |
SetBuildProperty | Представляет операцию задания значения свойства сборки конфигурации проекта. |
SetEvaluatedUIPropertyValue | Представляет операцию для задания вычисляемого значения видимого пользователем свойства. |
SetLaunchProfilePropertyValue | Представляет операцию задания значения свойства, предоставляемого через профиль запуска. |
SetPackageReferenceVersion | Представляет операцию переименования папки решения. |
SetSolutionFolderName | Представляет операцию для задания имени папки решения. |
SetStartupProjects | Представляет операцию установки запускаемого проекта. |
SetUnevaluatedUIPropertyValue | Представляет операцию, чтобы задать неоценимое значение видимого пользователем свойства. |
ВыгрузкаProject | Представляет операцию выгрузки проекта. |
WaitIntellisenseReady | Представляет операцию ожидания выполнения операции intellisense проекта или решения, чтобы быть готовым. |
Типы запросов проекта Обновления
Эти запросы поддерживают мониторинг обновлений, внесенных в результаты запроса.
Срок | Description |
---|---|
Track Обновления Async | Представляет операцию отслеживания изменений в запросе. |
Связанный контент
Дополнительные сведения о некоторых примерах запросов проекта для распространенных задач см. в разделе " Обзор запросов проекта"
Пример расширения, использующего API запросов проекта, см . в примере запроса проекта