Concetti relativi all'API query di Project
In Visual Studio i progetti sono raccolte di file compilati insieme in un eseguibile o in un altro formato di output e le soluzioni sono raccolte di progetti. I progetti e le soluzioni sono rappresentati nel file system rispettivamente dai file di progetto e dai file di soluzione. Per altre informazioni, vedere Che cosa sono le soluzioni e i progetti in Visual Studio?.
Il sistema di progetto si trova tra un file di progetto o di soluzione su disco (ad esempio, .csproj
e .vbproj
) e varie funzionalità di Visual Studio, tra cui, a titolo esemplificativo, le Esplora soluzioni, le finestre di progettazione, il debugger, i servizi di linguaggio, la compilazione e la distribuzione. I sistemi di progetto fanno parte dei componenti di Visual Studio per aiutare gli utenti a lavorare con e gestire progetti, eseguire compilazioni per produrre risultati e testare l'output e quasi tutte le interazioni che si verificano con i file contenuti in un file di progetto avviene tramite il sistema di progetto. Altre informazioni sui sistemi di progetto sono disponibili qui.
L'obiettivo dell'API di query del progetto è consentire alle estensioni di recuperare i dati relativi a progetti e soluzioni e apportare modifiche.
Alcuni esempi di operazioni che è possibile eseguire con una query di progetto:
- Enumerare i file di origine in un progetto
- Controllare quali pacchetti NuGet fanno riferimento a un progetto
- Trovare tutti i progetti con un determinato set di funzionalità
- Aggiungere nuovi file a un progetto
- Modificare le proprietà di un progetto
Una query di progetto è una serie di clausole che fanno riferimento a vari elementi. Per altre informazioni e per esempi di query di progetto per le attività comuni, vedere Panoramica di Project Query.
Tipi di elementi di query di progetto
Esistono molti elementi diversi a cui è possibile fare riferimento nelle query del progetto. Alcuni elementi includono raccolte figlio o figlio a cui è possibile fare riferimento. Ad esempio, un WorkSpace
oggetto contiene una raccolta di Projects
, ognuno dei quali contiene una raccolta di Files
.
Termine | Descrizione |
---|---|
Workspace | Area di lavoro di primo livello dell'API per fornire il punto di ingresso. |
ProprietàAvailableStatus | Punto di ingresso per verificare se un valore della proprietà è disponibile nel risultato. |
QueryableSpace.Projects | Tutti i progetti nell'area di lavoro. |
QueryableSpace.Solutions | Tutte le soluzioni nell'area di lavoro. |
Soluzione | Rappresenta una soluzione in Visual Studio. |
Project | Rappresenta la maggior parte dei progetti in Visual Studio, ma le cartelle della soluzione sono rappresentate in modo diverso in VisualStudio.Extensibility. |
SolutionFolder | Rappresenta una cartella della soluzione, ovvero una cartella virtuale per raggruppare progetti e file all'interno di una soluzione di Visual Studio. |
Folder | Rappresenta una cartella contenuta in un progetto. |
file | Rappresenta un file contenuto in un progetto o in una cartella della soluzione. |
ExternalFile | Rappresenta i file esterni a cui fa riferimento un progetto, che non è ancora supportato dai progetti C++. |
Proprietà | Rappresenta il set dinamico (nome/tipo debole) di proprietà di un progetto, di una configurazione o di un file. |
ProjectReference | Rappresenta i riferimenti da progetto a progetto, inclusi i riferimenti al progetto condiviso. |
PackageReference | Rappresenta un riferimento al pacchetto in una configurazione di progetto, in genere un riferimento al pacchetto NuGet. |
Assemblyreference | Rappresenta un assembly a cui si fa riferimento in una configurazione di progetto. |
ConfigurationDimensionDefinition | Rappresenta i valori per dichiarare le configurazioni del progetto. |
ProjectConfiguration | Rappresenta una configurazione del progetto. |
ConfigurationDimension | Rappresenta i valori di ogni dimensione di una singola configurazione di progetto. |
OutputGroup | Rappresenta una raccolta di output del progetto. |
Output | Rappresenta un elemento all'interno di un singolo gruppo di output. |
LaunchProfile | Rappresenta i profili di avvio definiti in un progetto. |
PropertyPage | Rappresenta le pagine delle proprietà visualizzate per il progetto. |
Progetti di avvio | Rappresenta i progetti di avvio definiti nella soluzione. |
Tipi di clausola Di query di Project
Le clausole nella query del progetto determinano il tipo di elementi da restituire nell'output, la raccolta da cui devono provenire, le proprietà da cui devono avere e se gli elementi restituiti devono essere modificabili. Le clausole vengono usate anche per limitare e filtrare l'output.
Termine | Descrizione |
---|---|
With | Richiede la restituzione del valore di una proprietà o di una raccolta dalla query. |
WithRequired | Il valore delle richieste di una proprietà o di una raccolta deve essere restituito dalla query. |
Where | Richiede che il risultato della query venga filtrato in base a un predicato. |
Recupero | Ottiene invece gli elementi figlio nel risultato della query. |
QueryAsync | Esegue una query e recupera il risultato come IAsyncEnumerable. |
AsQueryable | Avvia una query da un oggetto recuperato precedente. |
QueryFrom | Avvia una query da una raccolta di oggetti recuperati in precedenza. |
AsUpdatable | Avvia l'aggiornamento dell'oggetto da un risultato della query. |
ExecuteAsync | Esegue una query di aggiornamento. |
Tipi di azione query di progetto
Le azioni nella query del progetto determinano le modifiche apportate al sistema di progetto. Si noti che a ogni tipo di elemento di query sono disponibili azioni personalizzate. Di seguito è riportato un semplice elenco di query di azione.
Termine | Descrizione |
---|---|
AddAssemblyReference | Rappresenta l'operazione per aggiungere un riferimento all'assembly a un progetto. |
AddConfigurationDimensionValue | Aggiunge un nuovo valore a una dimensione di configurazione, ad esempio Configurazione o Piattaforma. |
AddFiles | Rappresenta l'operazione per aggiungere un file esistente al progetto. |
AddLaunchProfile | Rappresenta l'operazione per aggiungere un nuovo profilo di avvio a un progetto. |
AddPackageReference | Rappresenta l'operazione per aggiungere un riferimento al pacchetto a un progetto. |
AddProjectReference | Rappresenta l'operazione per aggiungere un progetto al riferimento al progetto a un progetto. |
AggiungiProgetto | Rappresenta l'operazione per aggiungere un progetto a una soluzione o a una cartella della soluzione. |
AddProjectReferenceByPath | Rappresenta l'operazione per aggiungere un progetto al riferimento al progetto al percorso di un progetto. |
AddSolutionConfiguration | Rappresenta l'operazione per aggiungere una configurazione della soluzione. |
Compilazione | Rappresenta l'operazione per compilare una soluzione. |
Pulire | Rappresenta l'operazione per pulire una soluzione. |
ConfigurationDimensionValue | Rappresenta l'operazione per impostare il valore della dimensione di una configurazione. |
CreateFile | Rappresenta l'operazione per creare un nuovo file in un progetto. |
CreateFolder | Rappresenta l'operazione per creare una cartella in un progetto. |
CreateSolutionFolder | Rappresenta l'operazione per aggiungere una cartella della soluzione a una soluzione o a una cartella della soluzione esistente. |
Debug | Rappresenta l'operazione di debug di una soluzione. |
DeleteConfigurationDimensionValue | Elimina un valore dalla dimensione di configurazione, ad esempio Configurazione o Piattaforma. |
Elimina | Rappresenta l'operazione per eliminare un progetto. |
DeleteSolutionConfiguration | Rappresenta l'operazione per rimuovere una configurazione della soluzione. |
Distribuzione | Rappresenta l'operazione per distribuire una soluzione. |
DuplicateLaunchProfile | Rappresenta l'operazione per duplicare un profilo di avvio esistente. |
Escludi | Rappresenta l'operazione da escludere da un progetto. |
Ricostruzione | Rappresenta l'operazione per ricompilare una soluzione. |
Ricaricaprogetto | Rappresenta l'operazione per ricaricare un progetto. |
RemoveLaunchProfile | Rappresenta l'operazione per rimuovere un profilo di avvio da un progetto. |
RenameFile | Rappresenta l'operazione per rinominare un file in un progetto. |
RenameFolder | Rappresenta l'operazione per rinominare una cartella in un progetto. |
RenameSolutionFolder | Rappresenta l'operazione per rinominare una cartella della soluzione. |
RenameProject | Rappresenta l'operazione per rinominare un progetto. |
Esegui | Rappresenta l'operazione per eseguire una soluzione. |
RunCustomTool | Rappresenta l'operazione per eseguire uno strumento personalizzato. |
Salva | Rappresenta l'operazione per salvare un progetto. |
Setpropertyvalue | Rappresenta l'operazione per impostare un valore della proprietà. |
SetCopyToLocal | Rappresenta l'operazione di impostazione del valore di CopyToLocal per un riferimento al progetto. |
SetBuildProperty | Rappresenta l'operazione di impostazione del valore di una proprietà di compilazione della configurazione del progetto. |
SetEvaluatedUIPropertyValue | Rappresenta l'operazione per impostare il valore valutato di una proprietà visibile dall'utente. |
SetLaunchProfilePropertyValue | Rappresenta l'operazione di impostazione del valore di una proprietà esposta tramite il profilo di avvio. |
SetPackageReferenceVersion | Rappresenta l'operazione per rinominare una cartella della soluzione. |
SetSolutionFolderName | Rappresenta l'operazione per impostare il nome di una cartella della soluzione. |
SetStartupProjects | Rappresenta l'operazione per impostare un progetto di avvio. |
SetUnevaluatedUIPropertyValue | Rappresenta l'operazione per impostare il valore non valutato di una proprietà visibile dall'utente. |
Scaricaprogetto | Rappresenta l'operazione per scaricare un progetto. |
WaitIntellisenseReady | Rappresenta l'operazione di attesa dello stato dell'operazione intelliSense per il progetto o la soluzione. |
Contenuto correlato
Per visualizzare alcuni esempi di query di progetto per attività comuni, vedere Panoramica di Project Query
Per un'estensione di esempio che usa l'API di query del progetto, vedere Esempio di query di progetto