Конфигурация проекта для вывода
Каждая конфигурация может поддерживать набор процессов сборки, которые создают выходные элементы, такие как исполняемые файлы или файлы ресурсов. Эти выходные элементы являются закрытыми для пользователя и могут быть помещены в группы, которые связывают связанные типы выходных данных, такие как исполняемые файлы (.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 для проектов.