Oggetto di configurazione del progetto
L'oggetto di configurazione del progetto gestisce la visualizzazione delle informazioni di configurazione nell'interfaccia utente.
Pagine delle proprietà di configurazione del progetto
Il provider di configurazione del progetto gestisce le configurazioni del progetto. L'ambiente e altri pacchetti, per ottenere l'accesso e recuperare informazioni sulle configurazioni di un progetto, chiamare le interfacce collegate all'oggetto Provider di configurazione di Project.
Nota
Non è possibile creare o modificare i file di configurazione della soluzione a livello di codice. È necessario usare DTE.SolutionBuilder
. Per altre informazioni, vedere Configurazione della soluzione.
Per pubblicare un nome visualizzato da usare nell'interfaccia utente di configurazione, il progetto deve implementare get_DisplayName. L'ambiente chiama GetCfgs, che restituisce un elenco di IVsCfg
puntatori che è possibile usare per ottenere i nomi visualizzati per le informazioni di configurazione e piattaforma da elencare nell'interfaccia utente dell'ambiente. La configurazione attiva e la piattaforma sono determinate dalla configurazione del progetto archiviata nella configurazione della soluzione attiva. Il FindActiveProjectCfg metodo può essere usato per recuperare la configurazione del progetto attiva.
L'oggetto IVsProjectCfgProvider può essere implementato facoltativamente nell'oggetto IVsCfgProvider2 con l'oggetto IVsCfgProviderEventsHelper per consentire di recuperare un IVsProjectCfg2
oggetto in base al nome di configurazione del progetto canonico.
Un altro modo per fornire all'ambiente e ad altri progetti l'accesso alle configurazioni del progetto consiste nel fornire ai progetti un'implementazione del IVsCfgProvider2::GetCfgs
metodo per restituire uno o più oggetti di configurazione. I progetti possono anche implementare IVsProjectCfg2, che eredita da IVsProjectCfg
e quindi da IVsCfg
, per fornire informazioni specifiche della configurazione. IVsCfgProvider2 supporta piattaforme e funzionalità per l'aggiunta, l'eliminazione e la ridenominazione delle configurazioni di progetto.
Nota
Poiché Visual Studio non è più limitato a due tipi di configurazione, il codice che elabora le configurazioni non deve essere scritto con presupposti sul numero di configurazioni, né deve essere scritto con il presupposto che un progetto con una sola configurazione sia necessariamente Debug o Retail. Questo rende l'uso di get_IsReleaseOnly e get_IsDebugOnly obsoleto.
La chiamata QueryInterface
all'oggetto restituito da IVsGetCfgProvider::GetCfgProvider
recupera IVsCfgProvider2
. Se IVsGetCfgProvider
non viene trovato chiamando QueryInterface
sull'oggetto progetto, è possibile accedere all'oggetto IVsProject3
provider di configurazione chiamando QueryInterface
sull'oggetto browser radice della gerarchia per l'oggetto restituito per IVsHierarchy::GetProperty(VSITEM_ROOT, VSHPROPID_BrowseObject)
o tramite un puntatore al provider di configurazione restituito per IVsHierarchy::GetProperty(VSITEM_ROOT, VSHPROPID_ConfigurationProvider)
.
IVsProjectCfg2
fornisce principalmente l'accesso agli oggetti di gestione della compilazione, del debug e della distribuzione e consente ai progetti di raggruppare gli output. I metodi di e IVsProjectCfg2
possono essere usati per implementare IVsBuildableProjectCfg per gestire il processo di compilazione e IVsOutputGroup i puntatori per i gruppi di IVsProjectCfg
output di una configurazione.
Il progetto deve restituire lo stesso numero di gruppi per ogni configurazione supportata anche se il numero di output contenuti in un gruppo può variare dalla configurazione alla configurazione. I gruppi devono inoltre avere le stesse informazioni sull'identificatore (nome canonico, nome visualizzato e informazioni sul gruppo) dalla configurazione alla configurazione all'interno di un progetto. Per altre informazioni, vedere Configurazione del progetto per l'output.
Per abilitare il debug, le configurazioni devono implementare IVsDebuggableProjectCfg. IVsDebuggableProjectCfg
è un'interfaccia facoltativa implementata dai progetti per consentire al debugger di avviare una configurazione e viene implementata nell'oggetto di configurazione con IVsCfg
e IVsProjectCfg
. L'ambiente lo chiama quando l'utente sceglie di avviare il debugger premendo F5.
ISpecifyPropertyPages
e IDispatch
vengono usati insieme alle pagine delle proprietà per recuperare e visualizzare informazioni dipendenti dalla configurazione all'utente. Per altre informazioni, vedere Pagine delle proprietà.