Поделиться через


Поддержка для свойств и конфигурации проекта

Свойства окно Visual Studio интегрированная среда разработки (ide) может просматривать свойства проекта и конфигурации. Можно предоставить страницу свойств для собственного типа проекта, чтобы пользователь мог задать свойства для приложения.

Выбрав узел проекта in Обозреватель решений затем выберите Свойства на Проект меню можно открыть диалоговое окно, позволяющее свойства проекта и конфигурации. IN Visual C# и Visual Basicи типы проектов, производные от этих языков в этом диалоговом окне отображаются в виде страницы с вкладками в Страница "Общие", папка "Среда", диалоговое окно "Параметры". Дополнительные сведения см. в разделе Walkthrough: Exposing Project and Configuration Properties.

Управляемый пакет .NET Framework для проектов (MPFProj) предоставляет вспомогательные классы для создания и управления новую систему проектов. Можно найти инструкции и компиляции исходного кода на MPF для проектов - Visual Studio 2010.

Сохраняемость свойств и конфигурации проекта

Свойства проектов и конфигурации сохраняются в файле проекта с расширением имени файла, связанного с типом проекта, например csproj, vbproj и .myproj. Проекты языка обычно используют файл шаблона, чтобы создать файл проекта. Однако на самом деле несколько способов сопоставления типов проектов и шаблонов. Дополнительные сведения см. в разделах Visual Studio Templates и Файлы описания каталога шаблона (.Vsdir).

Свойства проектов и конфигурации создаются путем добавления элементов к файлу шаблона. Эти свойства затем доступны в любой проект, созданный с помощью типа проекта, который использует этот шаблон. Visual C# проекты и MPFProj используют msbuild схема для файлов шаблонов. Эти файлы содержат раздел PropertyGroup для каждой конфигурации. Свойства проектов, как правило, сохраняются в первом разделе PropertyGroup, который имеет набор аргументов конфигурации в строку со значением NULL.

В следующем коде показано начало исходного файла проекта msbuild.

<Project MSBuildVersion="2.0" DefaultTargets="Build" xmlns="https://schemas.microsoft.com/developer/msbuild/2003">
  <PropertyGroup>
    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
    <Name>SomeProjectSix</Name>
    <SchemaVersion>2.0</SchemaVersion>
  </PropertyGroup>
  <PropertyGroup Condition=" '$(Configuration)' == 'Debug' ">
    <Optimize>false</Optimize>
  </PropertyGroup>
  <PropertyGroup Condition=" '$(Configuration)' == 'Release' ">
    <Optimize>true</Optimize>

В этом файле проекта <Name> и <SchemaVersion> свойства проекта. <Optimize> свойство конфигурации.

Обязанностью проекта сохранять свойства проекта и конфигурации файла проекта.

Примечание

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

Поддержка для свойств и конфигурации проекта

Microsoft.VisualStudio.Package.SettingsPage класс реализует страницы свойств проекта и конфигурации. Реализация по умолчанию SettingsPage предлагает пользователю универсальный шаблон открытые свойства в сетке свойств. Microsoft.VisualStudio.Package.HierarchyNode.GetPropertyPageGuids метод выделяет классы, производные от SettingsPage для сеток свойств проекта. Microsoft.VisualStudio.Package.ProjectNode.GetConfigPropertyPageGuids метод выделяет классы, производные от SettingsPage для сеток свойств конфигурации. Тип проекта должен переопределить эти методы, чтобы выбрать соответствующие страницы свойств.

SettingsPage и класс Microsoft.VisualStudio.Package.ProjectNode предложение класса эти методы для сохранения свойства проекта и конфигурации:

  • Microsoft.VisualStudio.Package.ProjectNode.GetProjectProperty и Microsoft.VisualStudio.Package.ProjectNode.SetProjectProperty сохраняет свойства проекта.

  • Microsoft.VisualStudio.Package.SettingsPage.GetConfigProperty и Microsoft.VisualStudio.Package.SettingsPage.SetConfigProperty сохраняет свойства конфигурации.

    Примечание

    Реализации Microsoft.VisualStudio.Package.SettingsPage и Microsoft.VisualStudio.Package.ProjectNode классы используют Microsoft.Build.BuildEngine Методы (msbuild), чтобы получать и задавать свойства проекта и конфигурации из файла проекта.

Класс наследуется от SettingsPage реализация Microsoft.VisualStudio.Package.SettingsPage.ApplyChanges и Microsoft.VisualStudio.Package.SettingsPage.BindProperties сохранение свойства конфигурации проекта или файла проекта.

ProvideObjectAttribute и путь реестра

Классы, производные от SettingsPage разработка быть общим через VSPackages. Чтобы сделать возможным создать класс, унаследованный от VSPackage SettingsPageдобавьте a Microsoft.VisualStudio.Shell.ProvideObjectAttribute в класс, производный от Microsoft.VisualStudio.Shell.Package.

<ProvideObject(GetType(MyProjectPropertyPage))> _ 
<Guid("e815d8ad-49bf-427d-99c8-009db3e56ab9")> _
Public Class MyPackage
    Inherits Package
[ProvideObject(typeof(MyProjectPropertyPage))]
[Guid("e815d8ad-49bf-427d-99c8-009db3e56ab9")]
public sealed class MyPackage : Package

VSPackage, в который вложен неважно атрибут. Если зарегистрирована VSPackage CreateInstance будет зарегистрировано идентификатор класса (CLSID) любого объекта, который можно создать так, что вызов Visual Studioможно создать ее.

Путь в реестре объекта, который может создать определяется путем объединения UserRegistryRoot, машинное слово, CLSID, а также идентификатор guid типа объекта. If MyProjectPropertyPage класс имеет идентификатор guid} {3c693da2-5bca-49b3-bd95-ffe0a39dd723 и UserRegistryRoot HKEY_CURRENT_USER \ software \ microsoft \ VisualStudio \ 8.0Exp, а затем путь в реестре был бы HKEY_CURRENT_USER \ software \ microsoft \ VisualStudio \ 8.0Exp \ CLSID} {\ 3c693da2-5bca-49b3-bd95-ffe0a39dd723.

Атрибуты и структура свойства проекта и конфигурации

CategoryAttribute" DisplayNameAttributeи DescriptionAttribute атрибуты определяют структуру, назначение и описание свойств проектов и конфигурации в универсальный шаблон странице свойств. Эти атрибуты указывают категорию отображаемое имя и описание параметра, соответственно.

Примечание

Эквивалентные атрибуты, SRCategory, LocDisplayName и SRDescription, строковые ресурсы для локализации и определенные в рамках использования MPF для проектов - Visual Studio 2010.

Рассмотрим следующий фрагмент кода:

Private _myConfigProp As String 
Private _isDirty As Boolean 

Public Property IsDirty As Boolean 
    Get 
        Return _isDirty
    End Get 
    Set(ByVal value As Boolean)
        _isDirty = value
    End Set 
End Property

<Category("My Category")> _
<DisplayName("My Config Property")> _
<Description("My Description")> _
Public Property MyConfigProp() As String 
    Get 
        Return _myConfigProp
    End Get 
    Set(ByVal value As String)
        _myConfigProp = value
        IsDirty = True 
    End Set 
End Property
public bool IsDirty { get; set; }
private string myConfigProp;

[Category("My Category")]
[DisplayName("My Config Property")]
[Description("My Description")]
public string MyConfigProp
{
    get { return myConfigProp; }
    set { myConfigProp = value; IsDirty = true; }
}

MyConfigProp свойство конфигурации появляется на странице свойства конфигурации " как Мое свойство конфигурации в категории Локальная категория. Если этот параметр выбран, то описание Мое описание, отображается в панели описание.

См. также

Задачи

Практическое руководство. Добавление и удаление страниц свойств

Основные понятия

Файлы описания каталога шаблона (.Vsdir)

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

Walkthrough: Exposing Project and Configuration Properties

состояние VSPackage

Проекты Visual Studio (SDK)

Visual Studio Templates