Объект конфигурации проекта
Объект конфигурации проекта управляет отображением сведений о конфигурации в пользовательском интерфейсе.
Страницы свойств конфигурации проекта
Поставщик конфигурации проекта управляет конфигурациями проекта. Среда и другие пакеты, чтобы получить доступ к конфигурациям проекта и получить сведения о конфигурациях проекта, вызовите интерфейсы, подключенные к объекту поставщика конфигурации проекта.
Примечание.
Невозможно создавать или изменять файлы конфигурации решения программным способом. Необходимо использовать DTE.SolutionBuilder
. Дополнительные сведения см. в разделе "Конфигурация решения".
Чтобы опубликовать отображаемое имя, которое будет использоваться в пользовательском интерфейсе конфигурации, проект должен реализовать get_DisplayName. Вызовы среды GetCfgs, возвращающие список указателей, которые можно использовать для получения отображаемых IVsCfg
имен для сведений о конфигурации и платформе, которые будут перечислены в пользовательском интерфейсе среды. Активная конфигурация и платформа определяются конфигурацией проекта, хранящейся в активной конфигурации решения. Этот FindActiveProjectCfg метод можно использовать для получения активной конфигурации проекта.
Объект IVsProjectCfgProvider можно при необходимости реализовать на IVsCfgProvider2 объекте с IVsCfgProviderEventsHelper объектом, чтобы получить IVsProjectCfg2
объект на основе канонического имени конфигурации проекта.
Другим способом предоставления среды и других проектов с доступом к конфигурациям проектов является IVsCfgProvider2::GetCfgs
предоставление реализации метода для возврата одного или нескольких объектов конфигурации. Проекты также могут реализовывать IVsProjectCfg2, от которых наследуется и IVsProjectCfg
таким образом IVsCfg
, для предоставления сведений о конкретной конфигурации. IVsCfgProvider2 поддерживает платформы и функциональные возможности для добавления, удаления и переименования конфигураций проекта.
Примечание.
Так как Visual Studio больше не ограничивается двумя типами конфигураций, код, который обрабатывает конфигурации, не должен быть написан с предположениями о количестве конфигураций, и не должен быть записан с предположением, что проект, имеющий только одну конфигурацию, обязательно является отладкой или розничной торговлей. Это делает использование и get_IsDebugOnly устаревшимget_IsReleaseOnly.
Вызов QueryInterface
объекта, возвращаемого из IVsGetCfgProvider::GetCfgProvider
полученных данных IVsCfgProvider2
. Если IVsGetCfgProvider
объект проекта не найден QueryInterface
IVsProject3
, вы можете получить доступ к объекту поставщика конфигурации, вызвав QueryInterface
объект корневого браузера иерархии для возвращаемого объекта IVsHierarchy::GetProperty(VSITEM_ROOT, VSHPROPID_BrowseObject)
или указатель на поставщик конфигурации, возвращенный для IVsHierarchy::GetProperty(VSITEM_ROOT, VSHPROPID_ConfigurationProvider)
.
IVsProjectCfg2
в основном предоставляет доступ к объектам управления сборкой, отладкой и развертыванием и позволяет проектам свободно группировать выходные данные. Методы IVsProjectCfg
и IVsProjectCfg2
могут использоваться для IVsBuildableProjectCfg управления процессом сборки и IVsOutputGroup указателями для выходных групп конфигурации.
Проект должен возвращать одинаковое количество групп для каждой конфигурации, которую она поддерживает, даже если количество выходных данных, содержащихся в группе, может отличаться от конфигурации к конфигурации. Группы также должны иметь те же идентификаторы (каноническое имя, отображаемое имя и сведения о группе) из конфигурации в конфигурацию в проекте. Дополнительные сведения см. в разделе "Конфигурация проекта для выходных данных".
Чтобы включить отладку, необходимо реализовать IVsDebuggableProjectCfgконфигурации. IVsDebuggableProjectCfg
— это необязательный интерфейс, реализованный проектами, позволяющий отладчику запускать конфигурацию и реализовываться в объекте конфигурации с помощью IVsCfg
и IVsProjectCfg
. Среда вызывает ее, когда пользователь выбирает запуск отладчика, нажав клавишу F5.
ISpecifyPropertyPages
и IDispatch
используется в сочетании со страницами свойств для получения и отображения сведений, зависимых от конфигурации, для пользователя. Дополнительные сведения см. в разделе "Страницы свойств".