Поделиться через


Конфигурация проекта для вывода

Каждая конфигурация может поддерживать набор процессов сборки, которые создают выходные элементы, такие как исполняемые файлы или файлы ресурсов. Эти выходные элементы являются закрытыми для пользователя и могут быть помещены в группы, которые связывают связанные типы выходных данных, такие как исполняемые файлы (.exe, .dll, .lib) и исходные файлы (IDL, H-файлы).

Выходные элементы можно сделать доступными с помощью IVsOutput2 методов и перечисления IVsEnumOutputs с помощью методов. Если вы хотите группировать выходные элементы, проект также должен реализовать IVsOutputGroup интерфейс.

Конструкция, разработанная реализацией IVsOutputGroup , позволяет проектам группировать выходные данные в соответствии с использованием. Например, библиотеку DLL можно сгруппировать с базой данных программы (PDB).

Примечание.

PDB-файл содержит сведения об отладке и создается при указании параметра "Создать сведения об отладке" при создании .dll или .exe. PDB-файл обычно создается только для конфигурации проекта отладки.

Проект должен возвращать одинаковое количество групп для каждой конфигурации, которую она поддерживает, даже если количество выходных данных, содержащихся в группе, может отличаться от конфигурации к конфигурации. Например, библиотека DLL проекта Мэтта может включать mattd.dll и mattd.pdb в конфигурацию отладки, но только включить matt.dll в конфигурацию розничной торговли.

Группы также имеют те же данные идентификатора, такие как каноническое имя, отображаемое имя и сведения о группе, от конфигурации до конфигурации в проекте. Эта согласованность позволяет развертыванию и упаковке продолжать работать, даже если конфигурации изменяются.

Группы также могут иметь ключевые выходные данные, позволяющие упаковывать ярлыки для указания на что-то понятное. Любая группа может быть пуста в заданной конфигурации, поэтому никаких предположений о размере группы не следует делать. Размер (количество выходных данных) каждой группы в любой конфигурации может отличаться от размера другой группы в той же конфигурации. Он также может отличаться от размера той же группы в другой конфигурации.

Рисунок

Выходные группы

Основное использование IVsProjectCfg интерфейса заключается в предоставлении доступа к объектам создания, развертывания и отладки объектов управления и разрешения проектов свободы для группирования выходных данных. Дополнительные сведения об использовании этого интерфейса см. в разделе "Объект конфигурации проекта".

На предыдущей схеме group Built имеет ключевые выходные данные в конфигурациях (bD.exe или b.exe), чтобы пользователь смог создать ярлык для создания и знать, что ярлык будет работать независимо от развернутой конфигурации. Источник группы не имеет выходных данных ключа, поэтому пользователь не может создать ярлык для него. Если в созданной отладочной группе есть ключевые выходные данные, но созданная группа розничной торговли не соответствует, это будет неправильной реализацией. Далее следует, что если какая-либо конфигурация содержит группу, содержащую выходные данные, и, в результате, файл ключа отсутствует, то другие конфигурации с этой группой, содержащие выходные данные, не могут иметь файлы ключей. Редакторы установщика предполагают, что канонические имена и отображаемые имена групп, а также существование файла ключа, не изменяются в конфигурациях.

Обратите внимание, что если проект не IVsOutputGroup хочет упаковывать или развертывать, достаточно не помещать эти выходные данные в группу. Выходные данные по-прежнему можно перечислить обычно, реализуя EnumOutputs метод, который возвращает все выходные данные конфигурации независимо от группировки.

Дополнительные сведения см. в примере IVsOutputGroup пользовательского проекта в MPF для проектов.

См. также