配置选项概述

Visual Studio 中的项目可以支持可生成、调试、运行和/或部署的多个配置。 配置是一种生成类型,使用一组命名的属性(通常是编译器开关)和文件位置描述。 默认情况下,新解决方案包含两种配置:调试发布。 可以使用默认设置来应用这些配置,或进行修改以满足特定的解决方案和/或项目要求。 某些包可以通过两种方式生成:作为 ActiveX 编辑器,或就地组件。 但是,项目不需要支持多个配置。 如果只有一个可用配置,则该配置将映射到所有解决方案配置。

配置通常由两部分组成:配置名称(如调试发布)和平台设置。 配置的平台名称标识配置所针对的环境,例如 API 集或操作系统平台。 Visual Studio 的用户无法创建平台;它们必须从项目 VSPackage 允许的选择中进行选择。 当用户安装 VSPackage 时,在开发包期间创建的交付平台可根据包创建者设置的任何条件,显示所需的任何平台名称。 然后,在实例化属性页时,用户可以从通过 VSPackage 提供的平台列表中进行选择。

平台名称是可选的,因为不是所有项目都支持平台的概念。 当配置缺少平台名称时,字符串 N/A 将在 UI 中显示。

每个解决方案都有自己的配置集,同一时间只能有一种配置处于活动状态。 解决方案配置是每个项目不超过一个配置的集合。 “不超过”规定是由于可以选择从解决方案配置中排除项目。 用户可创建自己的自定义解决方案配置。

下表说明项目的典型配置设置。 这些行标有配置名称,列标有平台名称。

配置名称 平台:Win32 平台:Win64
调试 <调试 Win32 设置> <调试 Win64 设置>
版本 <发布 Win32 设置> <发布 Win64 设置>
MyConfig 空值 <MyConfig Win64 设置>

注意

除非目标项目不支持 Win32,否则无法创建排除 Win32 平台的 MyConfig 解决方案配置。

更改解决方案的活动配置会选择在该解决方案中生成、运行、调试,或部署的项目配置集。 例如,如果将活动解决方案配置从发布更改为调试,则该解决方案中的所有项目都将自动生成,其配置在解决方案的调试配置中指示。 除非用户在环境的 Configuration Manager 中进行了手动更改,否则项目的配置也命名为调试

为每个项目存储的解决方案配置属性包括项目名称、项目配置名称、指示是生成还是部署的标志,以及平台名称。 有关详细信息,请参阅解决方案配置

用户可以通过在层次结构(解决方案资源管理器)中选择解决方案并打开属性页,查看和设置解决方案配置参数。 同样,可以通过在解决方案资源管理器中选择项目并打开该项目的属性页,查看和设置项目配置参数。

必要时,用户还可以使用发布配置设置生成一个项目,并使用调试配置设置生成其余项目。 有关更多信息,请参阅用于生成的项目配置

下图显示了支持解决方案和项目配置的接口是如何实现的:

配置接口图形

配置接口

与上图相关的一些说明:

  • IDispatch 在配置对象中标记为可选。 具体而言,浏览对象上的配置接口是可选的。

  • IVsDebuggableProjectCfg 在配置对象中标记为可选,但对于调试支持是必需的。

  • IVsProjectCfg2 在配置对象中标记为可选,但对于输出分组支持是需要的。

  • 配置提供程序对象被标记为可选对象,但可选择在哪里实现。 可以在项目对象,或单独的对象上实现该对象。

  • IVsCfgProvider2 是平台支持和配置编辑所需要的。 如果不实现该功能,则 IVsCfgProvider 就足够了。

  • 关系图中显示的一些对象作为单独的对象,可以根据你的特定设计要求,在实际情况下组合到同一类中。 但是,在本节的其他主题中,将根据关系图中显示的方案,讨论与这些对象关联的对象和接口。

  • 某些对象单独实现。 例如,项目和解决方案生成发生在单独的线程上,用于管理生成的对象与描述生成配置的对象分开存在。

    有关上图中配置对象接口和配置提供程序对象接口的详细信息,请参阅项目配置对象。 此外,用于构建的项目配置提供了有关配置生成器和生成依赖项对象接口的详细信息,而用于管理部署的项目配置则进一步描述了附加到配置部署器和部署依赖项对象的接口。 最后,输出的项目配置描述了输出组和输出对象接口,以及使用属性页查看和设置依赖配置的属性。