Конфигурации проектов и решений

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

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

Одна конфигурация решения активна и указана в панели команд в верхней части интегрированной среды разработки.

снимок экрана, показывающий активную конфигурацию на главной панели инструментов Visual Studio.

снимок экрана, показывающий активную конфигурацию на главной панели инструментов Visual Studio.

Конфигурация проекта и управление платформой, где хранятся построенные выходные файлы. Как правило, когда Visual Studio создает проект, выходные данные помещаются в вложенную папку проекта с активной конфигурацией (например, bin/Debug/x86), но если вы хотите изменить это, см. раздел "Изменить выходной каталог сборки".

Вы можете создать собственные конфигурации на уровне решения и проекта. Конфигурация решения определяет, какие проекты включаются в сборку при активной конфигурации. Будут созданы только проекты, указанные в активной конфигурации решения. Если в Configuration Manager выбрано несколько целевых платформ, все проекты, которые применяются к этой платформе, создаются. Конфигурация проекта определяет, какие параметры сборки и параметры компилятора используются при сборке проекта.

Чтобы создать, выбрать, изменить или удалить конфигурацию, можно использовать Configuration Manager. Чтобы открыть его, на панели меню выберите Сборка>Configuration Manager, или просто введите Configuration в поле поиска. Вы также можете использовать список конфигураций решения на панели инструментов стандартный, чтобы выбрать конфигурацию или открыть Configuration Manager.

снимок экрана диалогового окна Configuration Manager.

снимок экрана диалогового окна Configuration Manager.

Заметка

Если вы не можете найти параметры конфигурации решения на панели инструментов и не можете получить доступ к Configuration Manager, это может быть связано с тем, что вы используете параметры разработки Visual Basic. Дополнительные сведения см. в разделе "Управление конфигурациями с параметрами разработчика Visual Basic".

По умолчанию конфигурации Debug и Release включены в проекты, создаваемые с помощью шаблонов Visual Studio. Конфигурация отладки поддерживает отладку приложения, а конфигурация выпуска создает версию приложения, которую можно развернуть. Дополнительные сведения см. в разделе "Настройка конфигураций отладки и выпуска". Вы также можете создавать пользовательские конфигурации решений и конфигурации проекта. Дополнительные сведения см. в разделе "Создание и изменение конфигураций".

Почему существуют как конфигурации решений, так и конфигурации проекта

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

Предположим, вы являетесь разработчиком, который является частью большого общего решения, но вы владеете одним или несколькими связанными проектами в этом решении. Может потребоваться использовать конфигурацию отладки для проектов, но конфигурацию выпуска для всех остальных проектов в этом решении. Для поддержки этого сценария вы настроите конфигурацию решения отладки для использования конфигурации проекта отладки только для некоторых проектов и используйте конфигурацию проекта выпуска для всего остального. Это может означать значительно меньше накладных расходов с точки зрения производительности и размеров файлов для этих проектов, а запуская в режиме Release проекты, которые не активно отлаживаются, можно работать ближе к пользовательскому опыту, и все же сохранять возможность переключения между сборками Debug и Release таким образом, чтобы это имело смысл для вашей работы.

Конфигурации решения

Конфигурация решения определяет способ создания и развертывания проектов в решении. Чтобы изменить конфигурацию решения или определить новую, в Configuration Manager, в разделе конфигурация активного решениявыберите Изменить или Создать.

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

При определении новой конфигурации решения и выборе флажка "Создать новые конфигурации проектов" Visual Studio создает новую конфигурацию проекта во всех проектах. Аналогичным образом, когда вы определите новую платформу решения и установите флажок "Создать новые платформы проектов", Visual Studio создает новый параметр платформы во всех проектах. Кроме того, если добавить проект, предназначенный для новой платформы, Visual Studio добавляет эту платформу в список платформ решений и делает платформу доступной в качестве варианта во всех проектах. Параметры каждого проекта можно изменить в тех случаях, когда платформы не нужны или не поддерживаются некоторыми проектами.

Конфигурация активного решения также предоставляет контекст интегрированной среды разработки. Например, если вы работаете над проектом, и конфигурация указывает, что он будет создан для мобильного устройства, то панель инструментов отображает только элементы, которые можно использовать в проекте для мобильного устройства.

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

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

снимок экрана конфигураций конструктора проектов.

Предопределенные константы для каждой конфигурации отображаются под текстовым полем, где можно ввести собственный. Эти предопределенные константы определяются пакетом SDK, который использует проект. Чтобы узнать, где определены эти свойства, можно поискать, как свойство MSBuild DefineConstants определяется и изменяется в папке установки пакета SDK для .NET, где находятся файлы .props и .targets. Пакеты SDK предоставляют свойства MSBuild, которые можно задать в файле проекта, чтобы отключить предопределенные определения; Например, см. раздел DisableImplicitFrameworkDefines.

Вы можете настроить некоторые параметры проекта при помощи конфигурации, некоторые из них должны иметь одинаковое значение во всех конфигурациях, а некоторые предоставляют возможность выбора. Щелкните значок шестеренки, чтобы просмотреть доступные параметры и, если поддерживается, можно задать, следует ли использовать одно и то же значение в конфигурациях или отличаться по конфигурации. Можно также сбросить значение по умолчанию.

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

Как Visual Studio связывает конфигурации проектов с конфигурациями решений

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

  1. Если у проекта есть имя конфигурации (<имя конфигурации><имя платформы>), соответствующее имени новой конфигурации решения, используется эта конфигурация. Имена конфигураций не учитывают регистр.

  2. Если у проекта есть имя конфигурации, в котором часть имени конфигурации соответствует новой конфигурации решения, то используется эта конфигурация, вне зависимости от совпадения части платформы.

  3. Если совпадения по-прежнему нет, используется первая конфигурация, указанная в проекте.

Как Visual Studio связывает конфигурации решений с новыми конфигурациями проекта

При создании конфигурации проекта (в Configuration Manager, выбрав Новая в раскрывающемся меню в столбце конфигурации для этого проекта) и установив флажок Создать новые конфигурации решений, Visual Studio ищет одноимённую конфигурацию решения, чтобы собрать проект на каждой платформе, которую она поддерживает. В некоторых случаях Visual Studio переименовывает существующие конфигурации решения или определяет новые.

Visual Studio использует следующие критерии для связывания конфигураций решений с конфигурациями проекта:

  • Если конфигурация проекта не указывает платформу или указывает только одну платформу, то конфигурация решения, имя которой соответствует новой конфигурации проекта, найдено или добавлено. Имя по умолчанию этой конфигурации решения не включает имя платформы; он принимает форму <имени конфигурации проекта>.

  • Если проект поддерживает несколько платформ, конфигурация решения будет найдена или добавлена для каждой поддерживаемой платформы. Имя каждой конфигурации решения включает как имя конфигурации проекта, так и имя платформы и имеет вид <имя конфигурации проекта><имя платформы>.

Как конфигурации влияют на сборку

При создании решения с помощью команды >сборки решения Visual Studio собирает только активную конфигурацию. Все проекты, указанные в этой конфигурации решения, создаются, а единственной конфигурацией проекта, которая создается, является та, что указана в активной конфигурации решения и активной платформе решения, отображаемой на панели инструментов в Visual Studio. Например, отладка и x86. Другие определенные конфигурации и платформы не создаются.

Если вы хотите создать несколько конфигураций и платформ в одном действии, можно использовать опцию >пакетной сборки в Visual Studio. Чтобы получить доступ к этой функции, нажмите клавиши CTRL +Q, чтобы открыть поле поиска, и введите Batch build. Пакетная сборка недоступна для всех типов проектов. См. раздел Сборка нескольких конфигураций одновременно.