Información general sobre solucionesSolutions Overview

Una solución es una agrupación de uno o varios proyectos que funcionan conjuntamente para crear una aplicación.A solution is a grouping of one or more projects that work together to create an application. La información de proyecto y de estado relacionada con la solución se almacenan en dos archivos de solución diferente.The project and status information pertaining to the solution are stored in two different solution files. El archivo de solución (.sln) está basado en texto y se pueden colocar en el control de código fuente y compartirse entre usuarios.The solution (.sln) file is text-based and can be placed under source code control and shared between users. El archivo de opción (.suo) de usuario de solución es binario.The solution user option (.suo) file is binary. Como resultado, el archivo .suo no se puede colocar en el control de código fuente y contiene información específica del usuario.As a result, the .suo file cannot be placed under source code control and contains user-specific information.

Puede escribir cualquier VSPackage en cualquier tipo de archivo de solución.Any VSPackage can write to either type of solution file. Dada la naturaleza de los archivos, hay dos interfaces diferentes implementadas para escribir en ellos.Because of the nature of the files, there are two different interfaces implemented to write to them. El IVsPersistSolutionProps interfaz escribe información de texto en el archivo .sln y IVsPersistSolutionOpts interfaz escribe secuencias binarias en el archivo .suo.The IVsPersistSolutionProps interface writes text information to the .sln file and the IVsPersistSolutionOpts interface writes binary streams to the .suo file.

Note

Un proyecto no tiene que escribir explícitamente una entrada para sí mismo en el archivo de solución; el entorno administra el proyecto.A project does not have to explicitly write an entry for itself into the solution file; the environment handles that for the project. Por lo tanto, a menos que desee agregar contenido adicional específicamente para el archivo de solución, no es necesario registrar el VSPackage en este modo.Therefore, unless you want to add additional content specifically to the solution file, you do not need to register your VSPackage in this way.

Cada VSPackage que admite la persistencia de la solución usa tres interfaces, la IVsSolutionPersistence interfaz, que es implementada por el entorno y llamado por el VSPackage, y IVsPersistSolutionProps y IVsPersistSolutionOpts, que son ambos implementados por el VSPackage.Each VSPackage supporting solution persistence uses three interfaces, the IVsSolutionPersistence interface, which is implemented by the environment and called by the VSPackage, and IVsPersistSolutionProps and IVsPersistSolutionOpts, which are both implemented by the VSPackage. El IVsPersistSolutionOpts interfaz solo debe implementarse si se escriben por el VSPackage en el archivo .suo información privada.The IVsPersistSolutionOpts interface only needs to be implemented if private information is to be written by the VSPackage to the .suo file.

Cuando se abre una solución, el siguiente proceso tiene lugar.When a solution is opened, the following process takes place.

  1. El entorno lee la solución.The environment reads the solution.

  2. Si el entorno se encuentra un CLSID, carga el VSPackage correspondiente.If the environment finds a CLSID, it loads the corresponding VSPackage.

  3. Si se carga un paquete VSPackage, el entorno llama QueryInterface para IVsPackage interfaz para la interfaz que requiere el VSPackage.If a VSPackage is loaded, the environment calls QueryInterface for IVsPackage interface, for the interface that the VSPackage requires.

    1. Cuando se leen desde un archivo .sln, el entorno llama QueryInterface para IVsPersistSolutionProps.When reading from an .sln file, the environment calls QueryInterface for IVsPersistSolutionProps.

    2. Cuando se leen desde un archivo .suo, el entorno llama QueryInterface para IVsPersistSolutionOpts.When reading from an .suo file, the environment calls QueryInterface for IVsPersistSolutionOpts.

    Información específica sobre el uso de estos archivos puede encontrarse en solución (. Archivo sln) y opciones de usuario de la solución (. Archivo suo).Specific information relating to the use of these files can be found in Solution (.Sln) File and Solution User Options (.Suo) File.

Note

Si desea crear una nueva configuración de solución que consta de las configuraciones de dos proyectos y exclusión de un tercio de la compilación, debe utilizar la interfaz de usuario de las páginas de propiedad o la automatización.If you want to create a new solution configuration consisting of two projects' configurations and excluding a third from the build, you need to use the Property Pages UI or automation. No se puede cambiar las configuraciones de administrador de compilación de soluciones y sus propiedades directamente, pero puede manipular el Administrador de compilación de soluciones mediante el SolutionBuild clase a partir de DTE en el modelo de automatización.You can't change the solution build manager configurations and their properties directly, but you can manipulate the solution build manager using the SolutionBuild class from DTE in the automation model. Para obtener más información sobre la configuración de soluciones, consulte configuración de la solución.For more information about configuring solutions, see Solution Configuration.

Vea tambiénSee Also

IVsPackage
IVsPersistSolutionOpts
IVsPersistSolutionProps
IVsSolutionPersistence