配置选项概述

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

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

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

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

下表说明了项目的典型配置设置。 行被标记为配置名称,列被标记为平台名称。

配置名称 平台:Win32 平台:Win64
调试 <调试 Win32 设置> <调试 Win64 设置>
发布 <发布 Win32 设置> <发布 Win64 设置>
MyConfig N/A <MyConfig Win64 设置>

注释

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

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

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

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

用户还可以使用发布配置设置生成一个项目,并在必要时使用调试配置设置生成其余项目。 有关详细信息,请参阅 构建项目配置

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

配置接口图形

配置接口

与上图相关的一些说明:

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

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

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

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

  • IVsCfgProvider2 需要用于平台支持和配置编辑。 IVsCfgProvider 如果不实现该功能,则足够。

  • 在图表中显示的一些对象作为单独的对象可以结合到同一个类中,这取决于您具体的设计需求。 但是,在本部分的其他主题中,将根据关系图中显示的方案讨论与这些对象关联的对象和接口。

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

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