Condividi tramite


Componenti di base del modello di progetto

Le tabelle seguenti si espandono sul modello di progetto. Le tabelle presentano brevi descrizioni delle interfacce e dei servizi identificati nel modello e le interfacce e i servizi associati a oggetti specifici. Inoltre, le tabelle illustrano in dettaglio altre interfacce facoltative nella creazione e nella manutenzione del progetto a seconda dei requisiti del tipo di progetto specifico.

Per altre informazioni, vedere Supporto degli strumenti di esplorazione dei simboli.

Oggetto package

Interfaccia Commenti
IVsPackage Inizializza un VSPackage nell'IDE e ne rende disponibili i servizi per l'IDE.

Oggetto Project Factory

Interfaccia Commenti
IVsProjectFactory Gestisce la creazione di nuovi progetti e l'apertura di progetti esistenti.

Oggetti progetto

Interfacce Commenti
IVsProject3 Gestisce l'aggiunta e la rimozione degli elementi del progetto, apre gli editor e mantiene il mapping tra ogni moniker del documento e .VSITEMID Eredita da IVsProject e IVsProject2.
IVsHierarchy Gestisce le proprietà di spostamento e visualizzazione e fornisce eventi.
IVsUIHierarchy Abilita l'esecuzione dei comandi simile a quella di IOleCommandTarget per i comandi, ad esempio Taglia e Rinomina, che si applicano solo quando lo stato attivo si trova in Esplora soluzioni.
IOleCommandTarget Funge da interfaccia di destinazione del comando principale per una gerarchia di progetto. Si tratta dell'interfaccia standard per l'esecuzione di query sugli oggetti per lo stato o lo stato del comando e l'esecuzione di comandi. Disponibile quando non si è attivati nella finestra Progetto.
IPersistFileFormat Coordina la persistenza dello stato del progetto. In genere, lo stato del progetto viene archiviato come file di progetto, ma può essere adattato ai sistemi di archiviazione che non sono basati su file.
IVsPersistHierarchyItem2 Consente al progetto di gestire tutti gli aspetti della persistenza per i relativi elementi di progetto, come file su disco o oggetti in altri sistemi di archiviazione. L'interfaccia IVsPersistHierarchyItem2 viene usata per gli elementi che non implementano l'interfaccia IVsPersistDocData2 .
IVsSccProject2 Coordina le interazioni con il controllo del codice sorgente.
IVsProjectFlavorCfgProvider Consente ai progetti di gestire le informazioni di configurazione.
IVsCfgProvider2 Gestisce gli oggetti di configurazione del progetto, ad esempio configurazioni di debug/rilascio. Le operazioni di compilazione, distribuzione e debug sono coordinate tramite oggetti di configurazione del progetto.
IVsHierarchyDeleteHandler Implementata dalle gerarchie per controllare le opzioni di eliminazione (distruttive) o rimozione (non distruttive) per gli elementi della gerarchia. Chiamare l'interfaccia di query sull'interfaccia IVsHierarchyDeleteHandler dall'interfaccia IVsHierarchy .
IVsGetCfgProvider Fornisce l'opzione di implementazione di disporre dell'oggetto che supporta l'interfaccia IVsCfgProvider2 su un'identità COM diversa rispetto all'oggetto progetto che implementa l'interfaccia IVsHierarchy .
IVsProjectStartupServices Interfaccia facoltativa implementata per rendere il progetto estendibile da altri sviluppatori. L'interfaccia IVsProjectStartupServices consente a un VSPackage di terze parti di registrare un GUID persistente nel file di progetto in modo che ogni volta che il progetto viene caricato, si carica il GUID del servizio di terze parti nel file di progetto e si chiama QueryService tale GUID.
IVsUIHierWinClipboardHelperEvents Implementata dalle gerarchie di origine in una UIHierarchy finestra per coordinare le operazioni degli Appunti, ad esempio taglia, copia e incolla. Usare l'interfaccia AdviseClipboardHelperEvents per registrare gli eventi degli Appunti.
IVsHierarchyDropDataSource2 Fornisce informazioni su un elemento trascinato rispetto all'origine dati durante un'operazione di trascinamento della selezione in una finestra della gerarchia dell'interfaccia utente. Chiamato dall'interfaccia IVsHierarchy .
IVsHierarchyDropDataTarget Fornisce informazioni su un elemento trascinato rispetto alla destinazione di rilascio durante un'operazione di trascinamento della selezione in una finestra della gerarchia dell'interfaccia utente. Chiamato dall'interfaccia IVsHierarchy .

oggetto di configurazione

Interfacce Commenti
IVsCfg Fornisce informazioni su una configurazione.
IVsProjectCfg2 Consente ai progetti di gestire le informazioni di configurazione.
IVsDebuggableProjectCfg Consente l'esecuzione di un progetto sotto il controllo del debugger.
IVsDeployableProjectCfg Implementata dai progetti di distribuzione che eseguono operazioni di distribuzione per altri progetti.

Oggetto Configuration Builder

Interfacce Commenti
IVsBuildableProjectCfg Gestisce l'operazione di compilazione di una configurazione del progetto.

Oggetti Project aggiuntivi

Interfacce Commenti
IDispatch

ISpecifyPropertyPages
Visualizza le proprietà dell'elemento nella finestra Proprietà .
IVsOutput2

IVsEnumOutputs
Visualizza gli output per la distribuzione.

La tabella seguente presenta brevi descrizioni dei servizi identificati nel modello di progetto.

Servizi

Service Commenti
SVsRegisterProjectTypes Usato dai pacchetti VSPackage che implementano i tipi di progetto per registrare che la factory del progetto esiste con l'IDE. Il pacchetto VSPackage deve chiamare QueryService questo servizio e registrare la factory del progetto quando IVsPackage::SetSite viene chiamato il metodo . Se il SetSite metodo non viene chiamato, il progetto non viene creato un'istanza.
SVsSolution Fornisce l'accesso alla nozione interna e predefinita dell'IDE della soluzione corrente, ad esempio la possibilità di enumerare i progetti, creare nuovi progetti, prendere nota delle modifiche del progetto e così via.
SVsSccManager Chiamato da progetti che desiderano partecipare al controllo del codice sorgente.
SVsRunningDocumentTable Gestisce una tabella di documenti aperti per determinare se uno o più elementi del progetto sono già aperti.
SVsUIShellOpenDocument Contiene le interfacce e i metodi chiamati per aprire effettivamente un elemento di progetto usando l'editor standard o un editor specifico.
SVsTrackProjectDocuments Deve essere chiamato da tutti i progetti quando aggiungono, rimuovono o rinominano gli elementi.
SVsFileChangeEx Gestisce le modifiche apportate a un file o a una directory e invia una notifica ai client quando i file selezionati sono stati modificati su disco.
SVsQueryEditQuerySave Deve essere chiamato da tutti i progetti e gli editor prima di sporcarli o salvarli.
SVsSolutionBuildManager Gestisce l'ordine delle operazioni di compilazione e distribuzione per le configurazioni del progetto.
SVsShellDebugger Fornisce l'accesso ai servizi debugger di basso livello usati per la maggior parte dei controlli di debug.
SVsShellMonitorSelection Abilita l'accesso ai pacchetti VSPackage alle informazioni sulle selezioni correnti e abilita la comunicazione con la finestra Proprietà .
SVsUIShell Fornisce funzionalità di base dell'IDE correlate all'interfaccia utente, ad esempio la possibilità di creare ed enumerare finestre degli strumenti o finestre di documenti o di segnalare un errore all'utente.
SVsStatusbar Fornisce l'accesso alla barra di stato dell'IDE.
IVsExtensibility3 Usato per implementare il modello di automazione. Nel modello di progetto verrà restituito un oggetto proprietà che consente di creare un'istanza di tale oggetto.
SVsUIHierWinClipboardHelper Utilizzato per implementare gli eventi degli Appunti nell'oggetto progetto nella gerarchia. SVsUIHierWinClipboardHelper consente di gestire correttamente le operazioni taglia, copia e incolla.

Vedi anche