Общие сведения о параметрах конфигурации
Проекты в Visual Studio могут поддерживать несколько конфигураций, которые можно создавать, отлаживать, запускать и/или развертывать. Конфигурация — это тип сборки, описанный с именованным набором свойств, обычно параметров компилятора и расположений файлов. По умолчанию новые решения содержат две конфигурации, отладку и выпуск. Эти конфигурации можно применять с помощью параметров по умолчанию или изменить в соответствии с конкретным решением и (или) требованиями к проекту. Некоторые пакеты можно создавать двумя способами: как редактор ActiveX или как компонент на месте. Однако проекты не должны поддерживать несколько конфигураций. Если доступно только одна конфигурация, эта конфигурация сопоставляется со всеми конфигурациями решения.
Конфигурации обычно состоят из двух частей: имя конфигурации (например , отладка или выпуск) и параметры платформы. Имя платформы конфигурации определяет среду, предназначенную для конфигурации, например набор API или платформу операционной системы. Пользователи Visual Studio не могут создавать платформу; Они должны выбирать из выбранных вариантов, разрешенных для проекта VSPackage. Когда пользователь устанавливает VSPackage, платформа доставки, созданная во время разработки пакета, может отображать любое имя платформы, требуемое на основе любых критериев, заданных создателем пакета. Затем пользователь может выбрать из списка платформ, доступных через VSPackage, когда страницы свойств создаются.
Имена платформ являются необязательными, так как не все проекты поддерживают концепцию платформ. Если в конфигурации отсутствует имя платформы, строка N/A отображается в пользовательском интерфейсе.
Каждое решение имеет собственный набор конфигураций, только один из которых может быть активным одновременно. Конфигурация решения — это набор не более одной конфигурации из каждого проекта. Условие "не более чем" связано с возможностью исключения проекта из конфигурации решения. Пользователи могут создавать собственные пользовательские конфигурации решений.
В следующей таблице показана типичная настройка конфигураций для проекта. Строки помечены именами конфигурации и столбцами с именами платформ.
Имя конфигурации | Платформа: Win32 | Платформа: Win64 |
---|---|---|
Debug | <Отладка параметров Win32> | <Отладка параметров Win64> |
Выпуск | <Выпуск параметров Win32> | <Выпуск параметров Win64> |
MyConfig | Н/П | <Параметры MyConfig Win64> |
Примечание.
Невозможно создать конфигурацию решения MyConfig , которая исключает платформу Win32, если проект, на который вы нацелены, не поддерживает Win32.
Изменение активной конфигурации для решения выбирает набор конфигураций проекта, созданных, выполняемых, отлаживаемых или развернутых в этом решении. Например, если изменить активную конфигурацию решения с выпуска на отладку, все проекты в этом решении автоматически создаются с конфигурацией проектов, указанной в конфигурации отладки решения. Конфигурации проектов также называются отладкой , если пользователь не внес изменения вручную в Configuration Manager среды.
Свойства конфигурации решения, хранящиеся для каждого проекта, включают имя проекта, имя конфигурации проекта, флаги, указывающие, следует ли создавать или не развертывать, а также имя платформы. Дополнительные сведения см. в разделе "Конфигурация решения".
Пользователь может просматривать и задавать параметры конфигурации решения, выбрав решение в иерархии (Обозреватель решений) и открыв страницы свойств. Аналогичным образом можно просмотреть и задать параметры конфигурации проекта, выбрав проект в Обозреватель решений и открыв страницы свойств для этого проекта.
Пользователь также может создать один проект с помощью параметров конфигурации выпуска и всех остальных с параметрами конфигурации отладки при необходимости. Дополнительные сведения см. в разделе "Конфигурация проекта" для построения.
На следующей схеме показано, как реализованы интерфейсы, поддерживающие решения и конфигурации проекта:
Интерфейсы конфигурации
Несколько заметок, относящихся к предыдущей схеме:
IDispatch
помечен как необязательный в объекте конфигурации. В частности, необязательно иметь интерфейсы конфигурации в объекте обзора.IVsDebuggableProjectCfg
помечен как необязательный в объекте конфигурации, но требуется для поддержки отладки.IVsProjectCfg2
помечается необязательным в объекте конфигурации, но необходим для поддержки группирования выходных данных.Объект поставщика конфигурации помечается как необязательный объект, но этот параметр предназначен для его реализации. Объект можно реализовать в объекте проекта или отдельном объекте.
IVsCfgProvider2
требуется для поддержки платформы и редактирования конфигурации.IVsCfgProvider
достаточно, если вы не реализуете эту функцию.Некоторые из этих объектов, показанные на схеме, как отдельные объекты, можно объединить в тот же класс, где практически на основе конкретных требований к проектированию. Однако в других разделах этого раздела рассматриваются объекты и интерфейсы, связанные с этими объектами, в соответствии с сценарием, представленным на схеме.
Некоторые объекты реализуются отдельно. Например, сборка проектов и решений выполняется в отдельных потоках и объекте для управления жизнью сборки отдельно от объекта, описывающего конфигурацию сборки.
Дополнительные сведения об интерфейсах объектов конфигурации и интерфейсах объектов поставщика конфигурации на предыдущей схеме см. в разделе "Объект конфигурации Проекта". Кроме того, конфигурация проекта для создания содержит дополнительные сведения о построителе конфигураций и интерфейсах объектов зависимостей сборки, а конфигурация Project для управления развертыванием описывает интерфейсы, подключенные к объектам развертывания конфигурации и зависимостей развертывания. Наконец, конфигурация проекта для выходных данных описывает интерфейсы выходной группы и выходных объектов, а также использование страниц свойств для просмотра и задания зависимых от конфигурации свойств.