解决方案概述

解决方案是创建应用程序的分组一个或多个项。 项目和状态信息有关解决方案包含两个不同解决方案文件中。 解决方案 (.sln) 文件是基于文本并可以出现在源代码管理且共享在用户之间。 解决方案用户选项 (.suo) 二进制文件。 因此, .suo 文件不能放在源代码管理下并不包含用户特定的信息。 这些文件类似于用于 Visual Basic 或用于 Visual C++的早期版本中的工作区 (.dsw) 和用户的选项卡组 (.vbg) 文件 (.opt) 文件。

所有 VSPackage 可以编写对解决方案文件的任何一种类型。 由于文件的特性,有两个不同接口实现写入它们。 IVsPersistSolutionProps 接口写入文本。有关 .sln 文件和 IVsPersistSolutionOpts 接口写入二进制流到 .suo 文件。

VSPackage 注册为参与解决方案持久性通过将一个顶级项在注册表中调用 SolutionPersistence。 每次下是一系列关键标记与一个用户友好名称 (对于解决方案扩展程序示例, SolutionNotes)。

默认文件夹包含 GUID (REG_SZ),如下表所示 VSPackage 中。

[HKLM \AMP_LT应用程序 ID 的注册表根AMP_GT \SolutionPersistance\AMP_LT类型名称AMP_GT]

名称

类型

数据

说明

@

REG_SZ

GUID

VSPackage 的 GUID。

备注

项目不必显式编写自己的项添加到解决方案文件;环境处理为项。因此,,除非要特别添加其他内容添加到解决方案文件,以这种方式不需要注册 VSPackage。

支持解决方案持久性的每 VSPackage 使用三个接口、 IVsSolutionPersistence 接口,由环境中实现和由 VSPackage 调用和 IVsPersistSolutionPropsIVsPersistSolutionOpts,两者均由 VSPackage 实现。 ,如果私有信息将由 VSPackage 写入 .suo 文件, IVsPersistSolutionOpts 接口只需要实现。

打开后解决方案,下面的过程将。

  1. 该环境读取解决方案。

  2. 如果环境查找 CLSID,它加载相应的 VSPackage。

  3. 如果 VSPackage 加载,该环境调用 IVsPackage 接口的 QueryInterface , VSPackage 所需的接口。

    1. 在读取 .sln 文件时,环境调用 IVsPersistSolutionPropsQueryInterface

    2. 在读取 .suo 文件时,环境调用 IVsPersistSolutionOptsQueryInterface

使用的特定信息这些文件相关可以在 Solution (.sln) File解决方案用户 (选项。Suo) 文件找到。

备注

如果要创建新的解决方案配置包含的两种项目的配置和排除第三从生成,需要使用属性页 UI 或自动测试。不允许解决方案生成配置管理器及其属性的直接处理的可用 VSIP API 级接口。您可以操作中使用 DTE 的解决方案生成管理器 SolutionBuild 类在自动化模型。有关更多信息,请参见 自动化模型。有关配置的解决方案相关的更多信息,请参见 解决方案配置

请参见

参考

IVsPackage

IVsPersistSolutionOpts

IVsPersistSolutionProps

IVsSolutionPersistence