Configuration properties visual studio как перейти
В отличие от простейших программ, таких как "Hello World", большинство приложений состоит из нескольких исходных файлов. Это обстоятельство порождает массу проблем, в частности, как назвать файлы, где их разместить и можно ли их использовать повторно. В интегрированной среде разработки Visual Studio принята концепция решения (solution), состоящего из ряда проектов, которые в свою очередь состоят из ряда элементов, благодаря которой разработчики могут работать с исходными файлами. Интегрированная среда разработки имеет множество встроенных инструментов, позволяющих упростить этот процесс, обеспечив разработчикам доступ к большей части их приложений. Далее рассматриваются структура решений и проектов, доступные типы проектов и способы настройки их конфигурации.
Структура решения
Работая с системой Visual Studio, пользователь открывает решение. При повторном редактировании специальных файлов создается временное решение, которое можно уничтожить по окончании работы. Однако решение позволяет управлять текущими файлами, поэтому в большинстве случаев его сохранение означает, что пользователь может вернуться к тому, что он делал накануне, и вновь открыть файлы, с которыми он работал.
Наиболее распространенным способом структурирования приложений в среде Visual Studio является одно отдельное решение, содержащее много проектов. Каждый проект можно создать из набора исходных файлов и папок. Главное окно, в котором пользователь работает с решениями и проектами, называется Solution Explorer:
Для организации работы с исходным кодом и предотвращения его ассоциации с приложениями (за исключением веб-приложений, в которых существуют специальные папки, имеющие особое предназначение в данном контексте) используются папки (folders). Некоторые разработчики используют имена папок, соответствующие пространствам имен, которым принадлежат классы. Например, если класс Person находится в папке DataClasses в проекте FirstProject, то полностью квалифицированное имя класса может выглядеть как FirstProject.DataClasses.Person.
Папки решения (solution folders) - полезный способ организации проектов в большом решении. Они отображаются только в окне Solution Explorer - физически в файловой системе их не существует. Такие действия, как Build или Unload, можно легко выполнять над всеми проектами, включенными в папку решения. Для того чтобы разгрузить окно Solution Explorer, папки решения могут быть свернуты или скрыты.
Скрытые проекты по-прежнему создаются, когда пользователь создает решение. Поскольку папки проекта не соответствуют физическим папкам, их можно добавлять, переименовывать и удалять в любое время, не рискуя повредить связи между файлами или потерять контроль над исходными файлами.
Папка Miscellaneous Files - это специальная папка решения, которую можно использовать для того, чтобы следить за тем, какие еще файлы, не являющиеся частью какого-либо проекта в решении, были открыты в системе Visual Studio. По умолчанию папка Miscellaneous Files скрыта. Для того чтобы сделать ее видимой, следует выполнить команду Tools --> Options --> Environment --> Documents --> Show Miscellaneous Files.
Несмотря на то что формат файла решения, принятый в предыдущих версиях, не изменился, в системе Visual Studio 2010 открыть файл решения, созданный в версии Visual Studio 2013, невозможно.
Кроме информации о файлах, содержащихся в приложении, файлы решения и проектов могут содержать и другие записи, например, о том, как именно должен быть скомпилирован конкретный файл, об установках проекта, о ресурсах и многом другом. Система Visual Studio 2013 имеет немодальное диалоговое окно для редактирования свойств проекта, в то время как свойства решения по-прежнему открываются в отдельном окне. Как и следовало ожидать, свойствами проекта считаются те свойства, которые относятся только к данному проекту, например информация о сборке и связях, а свойства решения определяют общую конфигурацию для сборки приложений.
Формат файла решения
Система Visual Studio 2013 фактически создает для решения два файла, имеющих расширения .suo и .sln (solution file). Первый - это довольно неинтересный бинарный файл, который сложно редактировать. Он содержит информацию, специфичную для пользователя, например, какие файлы были открыты, когда решение закрывалось в последний раз и где находились контрольные точки. Этот файл скрыт, поэтому он не должен появляться в папке решения при использовании Windows Explorer, если не снять с него соответствующую метку.
Иногда файл .suo оказывается поврежденным, и это вызывает непредсказуемые последствия при сборке и редактировании приложений. Если при работе с конкретным решением система Visual Studio становится нестабильной, необходимо выйти из нее и удалить файл с расширением .suo. Он будет создан заново системой Visual Studio, когда решение будет открыто в следующий раз. Файл решения с расширением .sln содержит информацию о решении, например список проектов, конфигурации сборки и другие настройки, не специфичные для проекта. В отличие от многих файлов, используемых в системе Visual Studio 2013, файл решения не является XML-документом. Он хранит информацию в блоках, как показано в следующем примере:
В этом примере решение состоит из трех проектов (GettingStarted, Information Services и Reference Library), а раздел Global содержит настройки, которые применяются к решению. Например, само решение будет видимым в окне Solution Explorer, потому что настройка HideSolutionNode установлена равной FALSE. Если изменить ее на TRUE, имя решения не будет отображаться в системе Visual Studio.
Свойства решения
Для того чтобы открыть диалоговое окно Properties, необходимо щелкнуть правой кнопкой мыши на узле Solution в окне Solution Explorer и выбрать команду Properties. Это диалоговое окно содержит два узла: Common properties и Configuration properties, как показано на рисунке ниже:
Более подробно узлы Common properties и Configuration properties описываются в следующих разделах.
Узел Common Properties
Определяя проект Startup Project для приложения, пользователь имеет три возможности, которые являются практически очевидными. Выбор Current Selection запускает проект, который в данный момент находится в фокусе окна Solution Explorer. Вариант Single Startup гарантирует, что каждый раз будет запускаться один и тот же проект. Эта установка задается по умолчанию, поскольку большинство приложений имеют только один стартовый проект. Последний вариант, Multiple Startup Projects, позволяет запускать несколько проектов в определенном порядке. Это может быть полезным при работе с приложением клиент/сервер в рамках одного решения, причем требуется, чтобы и клиент, и сервер выполнялись одновременно. При выполнении нескольких проектов важно контролировать порядок их запуска. Для управления порядком запуска проектов можно использовать навигационные кнопки, расположенные после списка проектов.
Раздел Project Dependencies используется для того, чтобы задавать другие проекты, от которых зависит конкретный проект. В большинстве случаев система Visual Studio сама управляет этими свойствами, когда пользователь добавляет или удаляет связи между проектами и данным проектом. Однако иногда пользователь может самостоятельно создать связи между проектами, чтобы они собирались в заданном порядке. Система Visual Studio использует этот список зависимостей, для того чтобы определить порядок сборки проектов. Окно этого раздела предотвращает неосторожное добавление циклических связей и удаление необходимых зависимостей между проектами.
В разделе Debug Source Files можно создать список каталогов, в которых система Visual Studio может искать исходные файлы при отладке. Этот список задается по умолчанию и просматривается перед открытием диалогового окна Find Source. Кроме того, пользователь может перечислить исходные файлы, которые система Visual Studio не должна искать. Если щелкнуть на кнопке Cancel в момент, когда система предлагает найти конкретный исходный файл, то он будет добавлен в этот список.
Раздел Code Analysis Settings доступен только в версии Visual Studio Team Suite. Это позволяет выбирать набор правил статического анализа кода, которые будут применяться к конкретному проекту. Более подробно раздел Code Analysis обсуждается далее.
Узел Configuration Properties
И проекты, и решения имеют конфигурации для сборки, определяющие, какие элементы должны быть собраны и почему. Это может сбить пользователя с толку, потому что на самом деле между конфигурацией проекта, определяющей, как должны собираться элементы, и конфигурацией решения, определяющей, какие проекты должны быть собраны, нет никакой корреляции, кроме случаев, когда они имеют одинаковые имена. Новое решение определит конфигурации Debug и Release (решения), что эквивалентно сборке всех проектов в решении с помощью конфигураций Debug и Release (проекта).
Например, может быть создана новая конфигурация решения Test, состоящая из двух проектов: MyClassLibrary и MyClassLibraryTest. Когда пользователь создает свое приложение в конфигурации Test, он хочет, чтобы проект MyClassLibrary был собран в режиме Release, чтобы тестировать его в виде, максимально приближенном к окончательной версии. Однако, чтобы проверить тестируемый код, необходимо собрать тестовый проект в режиме Debug.
Когда пользователь собирает проект в режиме Release, он не хочет, чтобы решение Test было собрано или развернуто вместе с приложением. В данном случае в конфигурации решения Test можно указать, что пользователь хочет, чтобы проект MyClassLibrary был собран в режиме Release, а проект MyClassLibraryTest вообще не собирался.
Пользователь может легко переключаться между этими конфигурациями с помощью меню Configuration стандартной инструментальной панели. Однако, переключаться между платформами не так легко, потому что меню Platform нет ни в одной инструментальной панели. Для того чтобы сделать ее доступной, необходимо выбрать команду View --> Toolbars --> Customize. Затем элемент Solution Platforms из категории Build на закладке Command можно перетащить на инструментальную панель.
Следует отметить, что, выбрав узел Configuration Properties в диалоговом окне Solution Properties, как показано на рисунке ниже, можно получить доступ к раскрывающимся спискам Configuration и Platform. Раскрывающийся список Configuration содержит все доступные конфигурации решения: Debug и Release (заданные по умолчанию), Active и All Configurations. Аналогично в раскрывающемся списке Platform перечислены все доступные платформы. Как только пользователь получит доступ к этим раскрывающимся спискам, он может на этой же странице задать настройки для каждой конфигурации и/или платформы. Для того чтобы добавить новые конфигурации и/или платформы для решения, пользователь может также использовать кнопку Configuration Manager.
При добавлении новых конфигураций решения существует возможность (предусмотренная по умолчанию) создания соответствующих конфигураций для существующих проектов (по умолчанию все проекты будут собираться в новой конфигурации решения), а также возможность создать новую конфигурацию на основе существующих. Если флажок Create Project Configurations установлен и новая конфигурация основана на существующей, то новые конфигурации проекта будут копировать конфигурации проекта, заданные для существующей конфигурации.
Возможности, доступные для создания новых платформенных конфигураций, ограничены типами доступных центральных процессоров: Itanium, x86 и x64. Новая платформенная конфигурация также может основываться на существующих платформенных конфигурациях, и существует возможность создания платформенной конфигурации для проекта.
В конфигурационном файле решения можно также задать тип центрального процессора, для которого оно собирается. Это особенно удобно, если нужно развернуть приложение для компьютеров с 64-битовой архитектурой. Установить настройки для всех этих решений можно непосредственно в контекстном меню, которое открывается после щелчка правой кнопкой мыши на узле Solution node в окне Solution Explorer. В то время как команда Set Startup Projects открывает окно конфигурации решения, команды Configuration Manager, Project Dependencies и Project Build Order открывают окно Configuration Manager and Project Dependencies. Команды Project Dependencies и Project Build Order отображаются в окне, только если решение состоит из нескольких проектов.
Команда Project Build Order открывает окно Project Dependencies и перечисляет порядок сборки, как показано на рисунке ниже:
Закладка Build Order демонстрирует порядок, в котором должны собираться проекты в соответствии с зависимостями между ними. Это может оказаться полезным, если пользователь поддерживает ссылки на бинарные сборки проектов, а не ссылки на проекты. Кроме того, эту возможность можно использовать для двойной проверки того, что проекты будут собраны в правильном порядке.
Конфигурации сборок требуются для создания проектов с разными параметрами. Например, Debug и Release — это конфигурации, и при их создании используются разные параметры компилятора. Одна конфигурация является активной и отображается на панели команд в верхней части интегрированной среды разработки.
Этот раздел относится к Visual Studio в Windows. Информацию о Visual Studio для Mac см. в статье Конфигурации сборки в Visual Studio для Mac.
Параметры "Конфигурация" и "Платформа" позволяют определить, где будут храниться выходные файлы сборки. Как правило, когда в Visual Studio выполняется сборка проекта, выходные данные помещаются во вложенную папку проекта с именем активной конфигурации (например, bin/debug/x86). Но это можно изменить.
Вы можете создавать свои конфигурации сборки на уровне решения и проекта. Конфигурация решения определяет, какие проекты включаются в сборку, когда эта конфигурация активна. В сборку будут включены только проекты, указанные в активной конфигурации решения. Если в Configuration Manager выбрано несколько целевых платформ, будут построены все проекты, которые применяются к этой платформе. Конфигурация проекта определяет, какие параметры сборки и компилятора используются при сборке проекта.
Чтобы создать, выбрать, изменить или удалить конфигурацию, можно использовать Configuration Manager. Чтобы открыть его, выберите в строке меню Сборка > Configuration Manager или просто введите Configuration в поле поиска. Можно также использовать список Конфигурации решения на панели инструментов Стандартные, чтобы выбрать конфигурацию или открыть Configuration Manager.
Если вы не можете найти параметры конфигурации решения на панели инструментов и не можете получить доступ к Configuration Manager, можно применить параметры развертывания Visual Basic. Дополнительные сведения см. в разделе Практическое руководство. Управление конфигурациями с применением параметров разработчика Visual Basic.
По умолчанию конфигурации Debug и Release включены в проекты, которые создаются с использованием шаблонов Visual Studio. Конфигурация Debug поддерживает отладку приложения, а конфигурация Release создает версию приложения, которое можно развернуть. Дополнительные сведения см. в разделе Практическое руководство. Настройка конфигураций отладки и выпуска. Можно также создать пользовательские конфигурации решений и проектов. Дополнительные сведения см. в разделе Практическое руководство. создавать и изменять конфигурации.
Конфигурации решения
Конфигурация решения указывает, как следует создавать и развертывать проекты в решении. Чтобы изменить конфигурацию решения или определить новую конфигурацию в Configuration Manager, в меню Активная конфигурация решения щелкните Изменить или Создать.
Каждая запись в поле Контексты проекта в конфигурации решений представляет проект в решении. Для каждой комбинации Активная конфигурация решения и Активная платформа решения можно задать способ использования каждого проекта. (Дополнительные сведения о платформах решений см. в разделе Общие сведения о сборках платформ.)
При определении новой конфигурации решения и установке флажка Создать новые конфигурации проектовVisual Studio автоматически назначает новую конфигурацию всем проектам. Аналогичным образом, при определении новой платформы решения и установке флажка Создать новые платформы проектовVisual Studio автоматически назначает новую платформу всем проектам. Кроме того, если вы добавите проект, предназначенный для новой платформы, Visual Studio добавит эту платформу в список платформ решений и назначит ее всем проектам. Вы по-прежнему можете изменять параметры для каждого проекта.
Активная конфигурация решения также предоставляет контекст для IDE. Например, если вы работаете над проектом и конфигурация указывает, что он будет создан для мобильного устройства, на панели инструментов отобразятся только элементы, которые можно использовать в проекте мобильного устройства.
Конфигурации проекта
Параметры сборки и компилятора, используемых при сборке проекта определяют конфигурация и целевая платформа. В проекте могут быть разные параметры для каждой комбинации конфигурации и платформы. Чтобы изменить свойства проекта, откройте контекстное меню проекта в обозревателе решений и щелкните Свойства. В верхней части вкладки Сборка конструктора проектов выберите активную конфигурацию, чтобы изменить параметры сборки.
Сборка нескольких конфигураций
При построении решения с помощью команды Сборка > Собрать решение, Visual Studio выполняет сборку только активной конфигурации. Все проекты, указанные в этой конфигурации решения, будут построены, и единственной конфигурацией проекта будет только одна из них, указанная в активной конфигурации решения и активной платформе решения, которая отображается на панели инструментов в Visual Studio. Например, Отладка и x86. Другие определенные конфигурации и платформы не создаются.
Если требуется создать несколько конфигураций и платформ в одном действии, можно использовать параметр Сборка > Пакетная сборка в Visual Studio. Для получения доступа к этой функции, нажмите Ctrl+Q, чтобы открыть поле поиска, и введите Batch build . Пакетная сборка доступна не для всех типов проектов. См. практическое руководство по сборке с использованием нескольких конфигураций.
Назначение конфигураций проектов Visual Studio
Если вы определяете конфигурацию нового решения и не копируете параметры из существующего, Visual Studio использует следующие критерии для назначения конфигурации проектов по умолчанию. Критерии оцениваются в следующем порядке.
Если проект имеет имя конфигурации ( <configuration name> <platform name> ), которое точно совпадает с именем новой конфигурации решения, назначается эта конфигурация. В именах конфигураций не учитывается регистр.
Если проект имеет имя конфигурации, в котором часть имени конфигурации совпадает с новой конфигурацией решения, назначается эта конфигурация (независимо от того, совпадает ли часть имени платформы или нет).
Если совпадений все равно нет, назначается первая конфигурация, указанная в проекте.
Назначение конфигураций решений Visual Studio
При создании конфигурации проекта (в Configuration Manager путем выбора пункта Создать в раскрывающемся меню столбца Конфигурация для этого проекта) и установке флажка Создать новые конфигурации решений Visual Studio ищет конфигурацию решения с таким же именем, чтобы создать проект на каждой поддерживаемой платформе. В некоторых случаях Visual Studio переименовывает существующие конфигурации решения или определяет новые.
Visual Studio использует следующие критерии для назначения конфигураций решения.
Если конфигурация проекта не указывает платформу или указывает только одну платформу, будет найдена или добавлена конфигурация решения, имя которой совпадает с именем новой конфигурации проекта. Имя по умолчанию конфигурации решения не включает имя платформы; оно имеет формат <project configuration name> .
Если проект поддерживает несколько платформ, для каждой поддерживаемой платформы будет найдена или добавлена конфигурация решения. Имя каждой конфигурации решения включает как имя конфигурации проекта, так и имя платформы, и имеет формат <project configuration name> <platform name> .
Вы можете создать несколько конфигураций сборки для решения. Например, можно настроить отладочную сборку, которую ваши тест-инженеры могут использовать для поиска и устранения неполадок, или настроить разные типы сборок, которые можно передавать разным клиентам.
Этот раздел относится к Visual Studio в Windows. Информацию о Visual Studio для Mac см. в статье Создание и изменение конфигураций в Visual Studio для Mac.
Создание конфигураций сборки
Диалоговое окно Диспетчер конфигураций служит для выбора или изменения существующих конфигураций сборки, а также для создания новых.
Чтобы открыть диалоговое окно Диспетчер конфигураций, в обозревателе решений откройте контекстное меню для решения и выберите пункт Диспетчер конфигураций.
Если пункт Диспетчер конфигураций не отображается в контекстном меню, он должен отображаться в меню Сборка в строке меню. Если его нет в обоих меню, в строке меню выберите Сервис > Параметры, а затем в левой области диалогового окна Параметры разверните узел Проекты и решения > Общие и в области справа установите флажок Показывать дополнительные конфигурации построения.
В диалоговом окне Диспетчер конфигураций в раскрывающемся списке Активная конфигурация решения можно выбрать конфигурацию сборки для всего решения, изменить существующую или создать новую конфигурацию. Раскрывающийся список Активная платформа решения можно использовать для выбора платформы, для которой предназначена конфигурация, или для добавления новой платформы. В области Конфигурации проектов перечислены все проекты в решении. Для каждого проекта можно выбрать конфигурацию и платформу проекта, изменить уже существующую или создать новую конфигурацию или добавить новую платформу. Кроме того, можно установить флажки, которые указывают, включается ли конкретный проект при использовании конфигурации на уровне решения для сборки или развертывания решения.
После настройки необходимых конфигураций можно задать свойства проекта, которые подходят для этих конфигураций.
Задание свойств на основе конфигураций
Чтобы задать свойства на основе конфигураций, в обозревателе решений откройте контекстное меню для проекта и выберите пункт Свойства. Можно задать свойства для конфигураций. Например, для конфигурации выпуска можно задать оптимизацию кода при сборке решения, а для конфигурации отладки — указать, что включен символ условной компиляции DEBUG .
Дополнительные сведения о параметрах страницы свойств см. в статье Управление свойствами проекта и решения.
Создание конфигурации проекта
Откройте диалоговое окно Диспетчер конфигураций.
Выберите проект в столбце Проект.
В раскрывающемся списке Конфигурация для этого проекта выберите Создать.
Откроется диалоговое окно Создание конфигурации проекта.
В поле Имя введите имя новой конфигурации.
Чтобы использовать значения свойств из существующей конфигурации проекта, в раскрывающемся списке Копировать параметры из выберите конфигурацию.
Чтобы одновременно создать конфигурацию на уровне решения, установите флажок Создать новую конфигурацию решения.
Переименование конфигурации проекта
Откройте диалоговое окно Диспетчер конфигураций.
В столбце Проект выберите проект, который содержит нужную конфигурацию проекта.
В раскрывающемся списке Конфигурация для этого проекта выберите Изменить.
Откроется диалоговое окно Изменение конфигураций проекта.
Выберите имя конфигурации проекта, которую требуется изменить.
Выберите Переименовать, а затем введите новое имя.
Создание и изменение конфигураций сборки на уровне решения
Создание конфигурации сборки на уровне решения
Откройте диалоговое окно Диспетчер конфигураций.
В раскрывающемся списке Активная конфигурация решения выберите Создать.
Откроется диалоговое окно Создание конфигурации решения.
В текстовом поле Имя введите имя новой конфигурации.
Чтобы использовать параметры из существующей конфигурации решения, в раскрывающемся списке Копировать параметры из выберите конфигурацию.
Если вы хотите одновременно создать конфигурации проекта, установите флажок Создать новые конфигурации проекта.
Переименование конфигурации сборки на уровне решения
Откройте диалоговое окно Диспетчер конфигураций.
В раскрывающемся списке Активная конфигурация решения выберите Изменить.
Откроется диалоговое окно Изменение конфигураций решения.
Выберите имя конфигурации решения, которую требуется изменить.
Выберите Переименовать, а затем введите новое имя.
Изменение конфигурации сборки на уровне решения
Откройте диалоговое окно Диспетчер конфигураций.
В раскрывающемся списке Активная конфигурация решения выберите нужную конфигурацию.
В области Конфигурации проектов для каждого проекта выберите нужную конфигурацию и платформу, а также выберите, требуется ли выполнять его сборку и развертывание.
How do I set a path for DLL files to be searched in Visual Studio for a particular project alone?
Now I am setting it in the environment path variable, but I would like better control over this.
5 Answers 5
Search MSDN for "How to: Set Environment Variables for Projects". (It's Project>Properties>Configuration Properties>Debugging "Environment" and "Merge Environment" properties for those who are in a rush.)
The syntax is NAME=VALUE and macros can be used (for example, $(OutDir)).
For example, to prepend C:\Windows\Temp to the PATH:
Similarly, to append $(TargetDir)\DLLS to the PATH:
78.1k 27 27 gold badges 180 180 silver badges 207 207 bronze badges 1,119 2 2 gold badges 7 7 silver badges 3 3 bronze badges This answer best matches what I see when using Visual Studio 2019.You have a couple of options:
- You can add the path to the DLLs to the Executable files settings under Tools > Options > Projects and Solutions > VC++ Directories (but only for building, for executing or debugging here)
- You can add them in your global PATH environment variable
- You can start Visual Studio using a batch file as I described here and manipulate the path in that one
- You can copy the DLLs into the executable file's directory :-)
If you only need to add one path per configuration (debug/release), you could set the debug command working directory:
Project | Properties | Select Configuration | Configuration Properties | Debugging | Working directory
Repeat for each project configuration.
Set the PATH variable, like you're doing. If you're running the program from the IDE, you can modify environment variables by adjusting the Debugging options in the project properties.
If the DLLs are named such that you don't need different paths for the different configuration types, you can add the path to the system PATH variable or to Visual Studio's global one in Tools | Options.
99.8k 5 5 gold badges 66 66 silver badges 97 97 bronze badgesNone of the answers solved exactly my problem (the solution file I was running was trying to find xcopy to copy a dll after generation).
What solved it for me was going into menu "Project -> Properties"
Then in the window that opens choosing on the left pane: "Configuration Properties -> VC++ Directories
Читайте также: