Страницы свойств (C++)

Обновлен: Ноябрь 2007

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

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

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

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

Дополнительные сведения см. в разделе Задание свойств проекта с помощью страниц свойств.

Заданные по умолчанию и измененные значения свойств

Значения некоторых свойств отображаются полужирным шрифтом. Это означает, что данное значение было изменено. Значение свойства, заданное по умолчанию на уровне проекта, когда узел проекта выбирается в обозревателе решений — это, как правило, значение свойства, заданное по умолчанию для данного средства. Например, в проекте Win32 на странице свойств компилятора Генерация кода для свойства Enable String Pooling изначально установлено значение "No" (шрифтом обычного начертания). Это значит, что значение "No" соответствует параметрам проекта по умолчанию. Если бы использовалась программа CL.exe в командной строке, параметр /GF не действовал бы, не будучи указан явно.

Если значение свойства было изменено разработчиком или мастером приложений, оно отображается полужирным шрифтом. Например, на той же странице свойств Генерация кода для свойства Full Runtime Checks установлено значение /RTC1. При этом в командной строке параметр /RTC1 не действует по умолчанию; в этом случае значение свойства по умолчанию было изменено мастером приложений.

Подмножество значений по умолчанию для проекта отображается на страницах свойств и может быть изменено разработчиком. Дополнительные сведения см. в разделе "Значения по умолчанию для проекта" Страница свойств "Общие" (проект).

Сброс значений свойств

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

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

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

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

Ввод значений, заданных пользователем

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

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

Можно также выбрать в раскрывающемся списке вариант <Изменить...> (для однозначных свойств) или нажать кнопку "Обзор" (для выделенного многозначного свойства). Откроется диалоговое окно, в котором можно будет ввести одно или несколько значений свойства. Заголовок диалогового окна будет совпадать с именем редактируемого свойства. Для многозначных свойств следует вводить по одному значению в строке, нажимая клавишу ВВОД после каждого значения.

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

Обратите внимание, что отображаемые значения многозначного свойства в диалоговом окне "Страницы свойств" отражают только значения свойств на текущем уровне. Например, если в обозревателе решений выбран файл, и вы выбрали свойства C/C++ Preprocessor Definitions, на данной странице свойств не будут отображаться определения препроцессора, заданные на уровне проекта. Но если вы откроете поле редактирования многозначного свойства, вы сможете увидеть все значения, унаследованные свойством.

Если вы используете модуль проекта Visual C++, учтите, что такое поведение имеет место также для объектов, относящихся к файлам и проектам. Иными словами, запрашивая значения свойства на уровне файла, вы не получите значений того же свойства на уровне проекта — для этого необходимо будет явным образом запросить данные значения на уровне проекта. Имейте в виду, что некоторые значения могут наследоваться свойством от таблицы стилей, программный доступ к которой в этом выпуске невозможен.

Макросы $(Inherit) и $(NoInherit)

Обратите внимание, что для свойств, значения которых задаются пользователем, можно использовать два макроса:

  • $(Inherit)

  • $(NoInherit)

Снятие флажка (например наследовать от проекта) равнозначно указанию макроса $(NoInherit); использовать флажок проще. Если вы задаете макрос $(NoInherit), то, скорее всего, вам понадобится задать собственные значения.

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

Если вы решили использовать макрос $(NoInherit) для свойства, проверьте, не влияют ли на свойство какие-либо значения по умолчанию, заданные для проекта. Если да, то вы можете случайно переопределить заданное вами для проекта значение по умолчанию.

См. также

Задачи

Практическое руководство. Создание и удаление зависимостей проекта

Практическое руководство. Создание и изменение конфигураций

Другие ресурсы

Задачи развертывания с помощью установщика Windows

Система управления версиями для Visual Studio