Conceptos de la API de consulta del proyecto
En Visual Studio, los proyectos son colecciones de archivos que se compilan juntos en un archivo ejecutable o en alguna otra forma de salida, y las soluciones son colecciones de proyectos. Los proyectos y soluciones se representan en el sistema de archivos mediante archivos de proyecto y archivos de solución, respectivamente. Para más información, consulte ¿Qué son las soluciones y los proyectos en Visual Studio?
El sistema de proyectos se encuentra entre un proyecto o un archivo de solución en el disco (por ejemplo, .csproj
y .vbproj
) y varias características de Visual Studio, entre las que se incluyen, entre otros, los Explorador de soluciones, los diseñadores, el depurador, los servicios de lenguaje, la compilación y la implementación. Los sistemas de proyectos forman parte de los componentes de Visual Studio para ayudar a los usuarios a trabajar con proyectos y mantenerlos, ejecutar compilaciones para producir resultados y probar la salida, y casi toda la interacción que se produce con los archivos contenidos en un archivo de proyecto ocurre a través del sistema de proyectos. Puede encontrar más información sobre los sistemas de proyectos aquí.
El objetivo de la API de consulta del proyecto es habilitar extensiones para recuperar datos sobre proyectos y soluciones y realizar cambios.
Algunos ejemplos de lo que podría hacer con una consulta de proyecto:
- Enumerar los archivos de origen de un proyecto
- Comprobar los paquetes NuGet a los que hace referencia un proyecto
- Buscar todos los proyectos que tienen un conjunto determinado de funcionalidades
- Agregar nuevos archivos a un proyecto
- Modificar las propiedades de un proyecto
Una consulta de proyecto es una serie de cláusulas que hacen referencia a varios elementos. Consulte Información general sobre consultas de proyecto para obtener más información y ejemplos de consultas de proyecto para tareas comunes.
Tipos de elementos de consulta de proyecto
Hay muchos elementos diferentes a los que puede hacer referencia en las consultas del proyecto. Algunos elementos tienen colecciones secundarias las que también se puede hacer referencia. Por ejemplo, un objeto WorkSpace
contiene una colección de Projects
, cada una de las cuales contiene una colección de Files
.
Término | Descripción |
---|---|
Área de trabajo | Área de trabajo de nivel superior de la API para proporcionar el punto de entrada. |
PropertiesAvailableStatus | Punto de entrada para comprobar si un valor de propiedad está disponible en el resultado. |
QueryableSpace.Projects | Todos los proyectos del área de trabajo. |
QueryableSpace.Solutions | Todas las soluciones del área de trabajo. |
Solución | Representa una solución en Visual Studio. |
Proyecto | Representa la mayoría de los proyectos de Visual Studio, pero las carpetas de soluciones se representan de forma diferente en VisualStudio.Extensibility. |
SolutionFolder | Representa una carpeta de solución, que es una carpeta virtual para agrupar proyectos y archivos dentro de una solución de Visual Studio. |
Carpeta | Representa una carpeta contenida por un proyecto. |
Archivo | Representa un archivo contenido en un proyecto o una carpeta de solución. |
ExternalFile | Representa los archivos externos a los que hace referencia un proyecto, que aún no es compatible con los proyectos de C++. |
Propiedad | Representa un conjunto dinámico (nombre o tipo débil) de propiedades de un proyecto, una configuración o un archivo. |
RuleName | Representa el conjunto de reglas en una configuración de proyecto. |
ProjectReference | Representa referencias de proyecto a proyecto, incluidas las referencias de proyecto compartidas. |
PackageReference | Representa una referencia de paquete en una configuración de proyecto, normalmente una referencia de paquete NuGet. |
AssemblyReference | Representa un ensamblado al que se hace referencia en una configuración del proyecto. |
ConfigurationDimensionDefinition | Representa valores para declarar configuraciones de proyecto. |
ProjectConfiguration | Representa una configuración de proyecto. |
ConfigurationDimension | Representa los valores de cada dimensión de una sola configuración de proyecto. |
OutputGroup | Representa una colección de resultados del proyecto. |
Output | Representa un elemento dentro de un único grupo de salida. |
LaunchProfile | Representa los perfiles de inicio definidos en un proyecto. |
PropertyPage | Representa las páginas de propiedades que se muestran para el proyecto. |
Proyecto de inicio | Representa los proyectos de inicio definidos en la solución. |
Tipos de cláusulas de consulta de proyecto
Las cláusulas de la consulta del proyecto determinan de qué tipo de elementos se deben devolver en la salida, qué colección deben provenir, qué propiedades deben tener y si los elementos devueltos deben ser mutables. Las cláusulas también se usan para limitar y filtrar la salida.
Término | Descripción |
---|---|
With | Solicita el valor de una propiedad o colección que se va a devolver de la consulta. |
WithRequired | El valor de las solicitudes de una propiedad o colección debe devolverse desde la consulta. |
Where | Solicita que el resultado de la consulta se filtre en función de un predicado. |
Obtener | Obtiene elementos secundarios en su lugar en el resultado de la consulta. |
QueryAsync | Ejecuta una consulta y recupera el resultado como IAsyncEnumerable. |
AsQueryable | Inicia una consulta de un objeto recuperado anterior. |
QueryFrom | Inicia una consulta de una colección de objetos recuperados anteriores. |
AsUpdatable | Comienza a actualizar el objeto a partir de un resultado de consulta. |
ExecuteAsync | Ejecuta una consulta de actualización. |
Tipos de filtrado de consultas de proyecto
Los tipos de filtrado facilitan el refinamiento y el foco de los resultados de la consulta. Tenga en cuenta que es posible que determinados tipos de filtrado enumerados a continuación no estén disponibles para cada elemento de consulta.
Término | Descripción |
---|---|
ConfigurationsByName | Filtra los resultados de la consulta por un nombre de configuración específico. |
FilesByPath | Filtra los resultados de la consulta a una ruta de acceso de archivo específica. |
OutputGroupsByName | Filtra los resultados de la consulta por un nombre de grupo de salida específico. |
ProjectsByCapabilities | Filtra la consulta a funcionalidades específicas del proyecto. |
ProjectsByPath | Filtra los resultados de la consulta a una ruta de acceso de proyecto específica. |
ProjectsByProjectGuid | Filtra los resultados de la consulta a una guía de proyecto específica. |
RuleResultsByRuleName | Filtra la consulta por un nombre de regla específico. |
Skip | Ejecuta el resultado de una consulta a un número limitado de elementos omitiéndolos. |
Tipos de acción de consulta del proyecto
Las acciones de la consulta del proyecto determinan qué modificaciones se realizan en el sistema del proyecto. Tenga en cuenta que cada tipo de elemento de consulta tiene sus propias acciones disponibles. A continuación se muestra una lista sencilla de consultas de acción.
Término | Descripción |
---|---|
AddAssemblyReference | Representa la operación para agregar una referencia de ensamblado a un proyecto. |
AddConfigurationDimensionValue | Agrega un nuevo valor a una dimensión de configuración (por ejemplo, Configuración o Plataforma). |
AddFiles | Representa la operación para agregar un archivo existente al proyecto. |
AddLaunchProfile | Representa la operación para agregar un nuevo perfil de inicio a un proyecto. |
AddPackageReference | Representa la operación para agregar una referencia de paquete a un proyecto. |
AddProjectReference | Representa la operación para agregar un proyecto a una referencia de proyecto a un proyecto. |
AddProject | Representa la operación para agregar un proyecto a una solución o una carpeta de solución. |
AddProjectReferenceByPath | Representa la operación para agregar un proyecto a la referencia del proyecto a la ruta de acceso de un proyecto. |
AddSolutionConfiguration | Representa la operación para agregar una configuración de solución. |
Build | Representa la operación para compilar una solución. |
Clean | Representa la operación para limpiar una solución. |
ConfigurationDimensionValue | Representa la operación para establecer el valor de dimensión de una configuración. |
CreateFile | Representa la operación para crear un nuevo archivo en un proyecto. |
CreateFolder | Representa la operación para crear una carpeta en un proyecto. |
CreateSolutionFolder | Representa la operación para agregar una carpeta de solución a una solución o una carpeta de solución existente. |
Depuración | Representa la operación para depurar una solución. |
DeleteConfigurationDimensionValue | Elimina un valor de la dimensión de configuración (por ejemplo, Configuración o Plataforma). |
Eliminar | Representa la operación para eliminar un proyecto. |
DeleteSolutionConfiguration | Representa la operación para quitar una configuración de solución. |
Implementar | Representa la operación para implementar una solución. |
DuplicateLaunchProfile | Representa la operación para duplicar un perfil de inicio existente. |
Excluir | Representa la operación para excluir un proyecto. |
Volver a generar | Representa la operación para recompilar una solución. |
ReloadProject | Representa la operación para volver a cargar un proyecto. |
RemoveLaunchProfile | Representa la operación para quitar un perfil de inicio de un proyecto. |
RenameFile | Representa la operación para cambiar el nombre de un archivo en un proyecto. |
RenameFolder | Representa la operación para cambiar el nombre de una carpeta de un proyecto. |
RenameSolutionFolder | Representa la operación para cambiar el nombre de una carpeta de solución. |
RenameProject | Representa la operación para cambiar el nombre de un proyecto. |
Ejecutar | Representa la operación para ejecutar una solución. |
RunCustomTool | Representa la operación para ejecutar una herramienta personalizada. |
Guardar | Representa la operación para guardar un proyecto. |
SetPropertyValue | Representa la operación para establecer el valor de una propiedad. |
SetCopyToLocal | Representa la operación de establecer el valor de CopyToLocal para una referencia de proyecto. |
SetBuildProperty | Representa la operación de establecer el valor de una propiedad de compilación de configuración del proyecto. |
SetEvaluatedUIPropertyValue | Representa la operación para establecer el valor evaluado de una propiedad visible para el usuario. |
SetLaunchProfilePropertyValue | Representa la operación de establecer el valor de una propiedad expuesta a través del perfil de inicio. |
SetPackageReferenceVersion | Representa la operación para cambiar el nombre de una carpeta de solución. |
SetSolutionFolderName | Representa la operación para establecer un nombre de carpeta de solución. |
SetStartupProjects | Representa la operación para establecer un proyecto de inicio. |
SetUnevaluatedUIPropertyValue | Representa la operación para establecer el valor no evaluado de una propiedad visible para el usuario. |
UnloadProject | Representa la operación para descargar un proyecto. |
WaitIntellisenseReady | Representa la operación para esperar el progreso de la operación de IntelliSense del proyecto o de la solución para que esté listo. |
Tipos de actualización de la consulta del proyecto
Estas consultas admiten la supervisión de las actualizaciones realizadas en los resultados de la consulta.
Término | Descripción |
---|---|
TrackUpdatesAsync | Representa la operación para realizar un seguimiento de los cambios en una consulta. |
Contenido relacionado
Para ver algunos ejemplos de consultas de proyecto para tareas comunes, consulte Información general sobre consultas de proyecto.
Para obtener una extensión de ejemplo que use la API de consulta de proyecto, consulte Ejemplo de consulta del proyecto.