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


Объект конфигурации проекта

Объект конфигурации проекта управляет отображением сведений о конфигурации в пользовательском интерфейсе.

Конфигурация проекта Visual Studio

Страницы свойств конфигурации проекта

Поставщик конфигурации проекта управляет конфигурациями проекта. Среда и другие пакеты, чтобы получить доступ к конфигурациям проекта и получить сведения о конфигурациях проекта, вызовите интерфейсы, подключенные к объекту поставщика конфигурации проекта.

Примечание.

Невозможно создавать или изменять файлы конфигурации решения программным способом. Необходимо использовать 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 используется в сочетании со страницами свойств для получения и отображения сведений, зависимых от конфигурации, для пользователя. Дополнительные сведения см. в разделе "Страницы свойств".

См. также