Panoramica delle soluzioni

Una soluzione è un raggruppamento di uno o più progetti che interagiscono per creare un'applicazione. Le informazioni sul progetto e sullo stato relative alla soluzione vengono archiviate in due file di soluzione diversi. Il file della soluzione (con estensione sln) è basato su testo e può essere inserito nel controllo del codice sorgente e condiviso tra gli utenti. Il file dell'opzione utente della soluzione (con estensione suo) è binario. Di conseguenza, il file con estensione suo non può essere inserito nel controllo del codice sorgente e contiene informazioni specifiche dell'utente.

Qualsiasi VSPackage può scrivere in uno dei due tipi di file di soluzione. A causa della natura dei file, esistono due interfacce diverse implementate per scriverle. L'interfaccia IVsPersistSolutionProps scrive le informazioni di testo nel file con estensione sln e l'interfaccia IVsPersistSolutionOpts scrive i flussi binari nel file con estensione suo.

Nota

Un progetto non deve scrivere in modo esplicito una voce per se stessa nel file della soluzione; l'ambiente gestisce tale oggetto per il progetto. Pertanto, a meno che non si voglia aggiungere contenuto aggiuntivo specificamente al file della soluzione, non è necessario registrare il pacchetto VSPackage in questo modo.

Ogni pacchetto VSPackage che supporta la persistenza della soluzione usa tre interfacce, l'interfaccia IVsSolutionPersistence implementata dall'ambiente e chiamata dal VSPackage e IVsPersistSolutionPropsIVsPersistSolutionOpts, che sono entrambe implementate dal VSPackage. L'interfaccia IVsPersistSolutionOpts deve essere implementata solo se le informazioni private devono essere scritte dal VSPackage nel file con estensione suo.

Quando viene aperta una soluzione, viene eseguito il processo seguente.

  1. L'ambiente legge la soluzione.

  2. Se l'ambiente trova un oggetto CLSID, carica il VSPackage corrispondente.

  3. Se viene caricato un VSPackage, l'ambiente chiama QueryInterface l'interfaccia IVsPackage per l'interfaccia richiesta dal pacchetto VSPackage.

    • Quando si legge da un file con estensione sln, l'ambiente chiama QueryInterface .IVsPersistSolutionProps

    • Quando si legge da un file con estensione suo, l'ambiente chiama QueryInterface .IVsPersistSolutionOpts

    Informazioni specifiche relative all'uso di questi file sono disponibili nel file Di soluzioni (con estensione sln) e opzioni utente soluzione (con estensione suo).

Nota

Se si vuole creare una nuova configurazione della soluzione costituita da due configurazioni di progetti ed escludendo un terzo dalla compilazione, è necessario usare l'interfaccia utente o l'automazione pagine delle proprietà. Non è possibile modificare direttamente le configurazioni di Solution Build Manager e le relative proprietà, ma è possibile modificare lo strumento di gestione compilazione della soluzione usando la SolutionBuild classe DTE nel modello di automazione. Per altre informazioni sulla configurazione delle soluzioni, vedere Configurazione della soluzione.