用于输出的项目配置
每个配置都可以支持一组生成输出项(如可执行文件或资源文件)的生成进程。 这些输出项是用户的私有项,可以放置在链接相关输出类型的组中,例如可执行文件(.exe、.dll、.lib)和源文件(.idl、.h 文件)。
可以通过方法提供 IVsOutput2 输出项,并使用方法进行枚举 IVsEnumOutputs 。 如果要对输出项进行分组,项目还应实现 IVsOutputGroup 接口。
通过实现 IVsOutputGroup
开发的构造允许项目根据使用情况对输出进行分组。 例如,DLL 可能将其程序数据库(PDB)分组。
注意
PDB 文件包含调试信息,并在生成.dll或.exe时指定“生成调试信息”选项时创建。 通常仅为调试项目配置生成 .pdb 文件。
项目必须为支持的每个配置返回相同的组数,即使组中包含的输出数可能因配置而异。 例如,项目 Matt 的 DLL 可能包括调试配置中的 mattd.dll 和 mattd.pdb,但仅在零售配置中包含matt.dll。
这些组还具有相同的标识符信息,例如规范名称、显示名称和组信息,从配置到项目中的配置。 即使配置发生更改,这种一致性也允许部署和打包继续运行。
组还可以具有键输出,允许打包快捷方式指向有意义的内容。 任何组在给定的配置中可能为空,因此不应假设组的大小。 任何配置中每个组的大小(输出数)可以不同于同一配置中另一个组的大小。 它也可以不同于另一个配置中同一组的大小。
输出组
接口的主要 IVsProjectCfg 用途是提供对生成、部署和调试管理对象的访问,并允许项目自由地对输出进行分组。 有关使用此接口的详细信息,请参阅 Project Configuration 对象。
在上图中,Group Built 具有跨配置(bD.exe或b.exe)的关键输出,以便用户可以创建“生成”快捷方式,并知道无论部署的配置如何,该快捷方式都会起作用。 组源没有键输出,因此用户无法创建其快捷方式。 如果调试组生成具有关键输出,但零售组生成没有,那将是不正确的实现。 然后,如果任何配置都有一个不包含输出的组,因此没有键文件,则包含该组的其他配置不能包含密钥文件。 安装程序编辑器假定组的规范名称和显示名称以及密钥文件的存在不会根据配置而更改。
请注意,如果项目具有 IVsOutputGroup
不希望打包或部署的项目,则不足以将输出放入组中。 仍可以通过实现 EnumOutputs 返回所有配置输出的方法(无论分组如何)来正常枚举输出。
有关详细信息,请参阅 MPF for Projects 的自定义项目示例中的IVsOutputGroup
实现。