解决方案是一个或多个项目分组,这些项目协同工作以创建应用程序。 与解决方案相关的项目和状态信息存储在两个不同的解决方案文件中。 解决方案(.sln)文件基于文本,可放置在源代码控制下并在用户之间共享。 解决方案用户选项 (.suo) 文件是二进制文件。 因此,.suo 文件不能放置在源代码控制下,并且包含特定于用户的信息。
任何 VSPackage 都可以写入任一类型的解决方案文件。 由于文件的性质,实现两个不同的接口来写入这些文件。 该 IVsPersistSolutionProps 接口将文本信息写入.sln文件, IVsPersistSolutionOpts 接口将二进制流写入 .suo 文件。
注释
项目无需将自身的条目显式写入解决方案文件中;环境会为项目自动处理此项工作。 因此,除非你想要专门向解决方案文件添加其他内容,否则不需要以这种方式注册 VSPackage。
每个支持解决方案持久性的 VSPackage 都使用三个接口: IVsSolutionPersistence 接口由环境实现并由 VSPackage 调用,IVsPersistSolutionProps 和 IVsPersistSolutionOpts 接口则由 VSPackage 自己实现。 
              IVsPersistSolutionOpts仅当 VSPackage 将私有信息写入 .suo 文件时,才需要实现该接口。
打开解决方案后,将执行以下过程。
- 环境读取解决方案。 
- 如果环境找到一个 - CLSID,它将加载相应的 VSPackage。
- 如果加载了 VSPackage,则环境会为 - QueryInterfaceVSPackage 所需的接口调用IVsPackage接口。- 从.sln文件中读取时,环境会对 - IVsPersistSolutionProps进行- QueryInterface调用。
- 从 .suo 文件读取时,环境会为 - IVsPersistSolutionOpts调用- QueryInterface。
 - 有关这些文件使用的具体信息,请参阅解决方案(.sln)文件和解决方案用户选项(.suo)文件。 
注释
如果想要创建一个新的包含两个项目配置的解决方案,并从生成中排除第三个项目,则需要使用属性页用户界面或自动化。 不能直接更改解决方案生成管理器的配置和属性,但可以使用自动化模型中的 DTE 类来操作解决方案生成管理器 `SolutionBuild`。 有关配置解决方案的详细信息,请参阅 解决方案配置。