Dela via


Lösningsöversikt

En lösning är en gruppering av ett eller flera projekt som fungerar tillsammans för att skapa ett program. Projekt- och statusinformationen som rör lösningen lagras i två olika lösningsfiler. Lösningsfilen (.sln) är textbaserad och kan placeras under källkodskontroll och delas mellan användare. Lösningsalternativfilen (.suo) är binär. Därför kan .suo-filen inte placeras under källkodskontrollen och innehåller användarspecifik information.

Vilken som helst VSPackage kan skriva till båda typerna av lösningsfil. På grund av filernas natur finns det två olika gränssnitt som implementeras för att skriva till dem. Gränssnittet IVsPersistSolutionProps skriver textinformation till .sln-filen och IVsPersistSolutionOpts gränssnittet skriver binära strömmar till .suo-filen.

Anmärkning

Ett projekt behöver inte uttryckligen skriva en post för sig själv i lösningsfilen; Miljön hanterar det för projektet. Om du inte vill lägga till ytterligare innehåll specifikt i lösningsfilen behöver du därför inte registrera VSPackage på det här sättet.

Varje VSPackage som stödjer lösningspersistentens använder tre gränssnitt: IVsSolutionPersistence-gränssnittet, som implementeras av miljön och anropas av VSPackage, och IVsPersistSolutionProps och IVsPersistSolutionOpts, som båda implementeras av VSPackage. Gränssnittet IVsPersistSolutionOpts behöver bara implementeras om privat information ska skrivas av VSPackage till .suo-filen.

När en lösning öppnas sker följande process.

  1. Miljön läser lösningen.

  2. Om miljön hittar en CLSID, läser den in motsvarande VSPackage.

  3. Om en VSPackage läses in, kallar miljön QueryInterface för IVsPackage-gränssnittet som VSPackage kräver.

    • När man läser från en .sln-fil anropar miljön QueryInterface för IVsPersistSolutionProps.

    • När en .suo-fil läses, anropar miljön QueryInterface för IVsPersistSolutionOpts.

    Specifik information om användningen av dessa filer finns i filen Solution (.sln) File and Solution User Options (.suo).

Anmärkning

Om du vill skapa en ny lösningskonfiguration som består av två projekts konfigurationer och exkludera en tredje från bygget måste du använda användargränssnittet för egenskapssidor eller automatisering. Du kan inte ändra konfigurationerna för lösningshanteraren och deras egenskaper direkt, men du kan ändra lösningshanteraren med hjälp av SolutionBuild klassen från DTE i automationsmodellen. Mer information om hur du konfigurerar lösningar finns i Lösningskonfiguration.