Страницы свойств
Пользователи могут просматривать и изменять зависящие от конфигурации проекта свойства и независимые свойства с помощью страниц свойств. Кнопка "Страницы свойств" включена в окне "Свойства" или на панели инструментов Обозреватель решений для объектов, которые предоставляют представление страницы свойств выбранного объекта. Страницы свойств создаются средой и доступны для решений и проектов. Однако они также могут быть доступны для элементов проекта, использующих свойства, зависящие от конфигурации. Эту возможность можно использовать, если для файлов в проекте требуются различные параметры переключения компилятора для правильной сборки.
Использование страниц свойств
Если страница свойств уже отображается и изменения выделения (например, из решения в проект), сведения, отображаемые на страницах, изменяются для отображения свойств для нового выбора. Если в объекте нет свойств, поддерживающих страницы свойств, страница свойств пуста.
Если выбрано несколько объектов, страница свойств отображает пересечение свойств для всех выбранных элементов. Если выбранный элемент не содержит свойства, зависящие от конфигурации, и кнопка "Страницы свойств" на панели инструментов Обозреватель решений нажимается, фокус изменится на окно свойств. Дополнительные сведения о окно свойств и выборе см. в разделе "Расширение свойств".
Если свойства отображаются для нескольких объектов и вы изменяете значение на странице свойств, все значения для объектов задаются новым значением, даже если они изначально были разными, и страница была пустой при отображении свойств отдельного объекта.
В Visual Studio доступны два общих типа диалоговых окон ProjectProperty Pages . Во-первых, для проектов Visual Basic страницы свойств отображаются с помощью формата поля, как показано на следующем снимке экрана. Во втором, показанном далее в этом разделе, на странице свойств размещается сетка свойств, аналогичная приведенной в окне свойств.
Диалоговое окно "Страницы свойств проекта" с форматом полей и структурой дерева
Структура дерева в диалоговом окне "Страницы свойств" не создается с помощью IVsHierarchy. Среда, основанная на имени уровня, переданном интерфейсами ISpecifyPropertyPages , IVsPropertyPage создает ее.
На страницах свойств Visual Studio доступны только две категории верхнего уровня:
Общие свойства, в которых отображаются сведения о конфигурации для выбранного объекта или объектов. В результате, если выбрана одна из подкатегорий "Общие свойства", параметры конфигурации, платформы и Configuration Manager в верхней части диалогового окна недоступны.
Свойства конфигурации, содержащие сведения, зависящие от конфигурации, связанные с отладкой, оптимизацией и сборкой для решения или проекта.
Вы не можете создать дополнительные категории верхнего уровня, но вы можете не отображать одну или другую в реализации
IVsPropertyPage
. Например, если для объекта не отображаются независимые от конфигурации свойства, вы можете не отображать категорию "Общие свойства". При реализации в объекте конфигурации в объекте конфигурации отображаются общие свойства, еслиISpecifyPropertyPages
они реализуютсяISpecifyPropertyPages
из объекта обзора элемента иIVsCfg
IVsProjectCfg
связанных интерфейсов.Каждая категория, отображаемая под категорией верхнего уровня, представляет отдельную страницу свойств. Записи категории и подкатегории, доступные в диалоговом окне, определяются реализацией
ISpecifyPropertyPages
иIVsPropertyPage
.IDispatch
объекты для элементов в контейнере выбора, которые имеют свойства, отображаемые на страницах свойств, реализуютсяISpecifyPropertyPages
для перечисления списка идентификаторов классов. Идентификаторы классов передаются в виде переменныхISpecifyPropertyPages
и используются для создания экземпляров страниц свойств. Список идентификаторов классов также передаетсяIVsPropertyPage
для создания структуры дерева слева от диалогового окна. Затем страницы свойств передают сведения обратноIDispatch
в объект, реализующийISpecifyPropertyPages
и заполняющий сведения для каждой страницы.Свойства объекта обзора извлекаются с помощью
IDispatch
каждого объекта в контейнере выбора.Реализация
Help::DisplayTopicFromF1Keyword
в VSPackage предоставляет функциональные возможности кнопки справки.Дополнительные сведения см
IDispatch
. иISpecifyPropertyPages
в библиотеке MSDN.Второй тип страниц свойств, отображаемых в примерах, содержит форму сетки свойств, как показано на следующем снимке экрана.
Диалоговое окно "Страницы свойств" с сеткой свойств
Интерфейсы и (объявленные
IVSMDPropertyBrowser
в vsmanaged.h) используются для создания иIVSMDPropertyGrid
заполнения сетки свойств в диалоговом окне или окне.Архитектура проектов значительно изменилась с прошлых версий Visual Studio. В частности, представление о том, какой проект активен, изменился. В Visual Studio отсутствует концепция активного проекта. В предыдущих средах разработки активный проект был проектом, который создает и развертывает команды по умолчанию независимо от контекста. Теперь решение управляет и арбитражем, которые создают и развертывают команды, применяются к проектам.
То, что ранее было активным проектом, теперь фиксируется одним из трех различных способов:
Проект запуска
На странице свойств решения можно указать проект или проекты, которые будут запущены, когда пользователь нажимает клавишу F5 или выбирает команду "Выполнить" в меню "Сборка". Это работает так же, как и старый активный проект в том смысле, что его имя отображается в Обозреватель решений с полужирным шрифтом.
Вы можете получить проект запуска в качестве свойства в модели автоматизации путем вызова
DTE.Solution.SolutionBuild.StartupProjects
. В VSPackage вы вызываете get_StartupProject get_StartupProject методы или методы.IVsSolutionBuildManager
доступен как услуга поQueryService
SID_SVsSolutionBuildManager. Дополнительные сведения см. в разделе "Объект конфигурации проекта" и "Конфигурация решения".Конфигурация сборки активного решения
Visual Studio имеет активную конфигурацию решения, доступную в модели автоматизации, реализуя
DTE.Solution.SolutionBuild.ActiveConfiguration
. Конфигурация решения — это коллекция, содержащая одну конфигурацию проекта для каждого проекта в решении (каждый проект может иметь несколько конфигураций на нескольких платформах с различными именами). Дополнительные сведения о страницах свойств решения см. в разделе "Конфигурация решения".В настоящее время выбран проект
GetCurrentSelection Реализуйте метод для получения выбранной иерархии проекта и элемента проекта. Из DTE вы будете
SelectedItems.SelectedItem.Project
использовать методы иSelectedItems.SelectedItem.ProjectItem
методы. Пример кода содержится в этих заголовках в основных документах Visual Studio.