Partilhar via


Suporte para propriedades de configuração e projeto

O Propriedades janela na Visual Studio o ambiente de desenvolvimento integrado (IDE) pode exibir as propriedades de projeto e configuração. Você pode fornecer uma página de propriedades para seu próprio tipo de projeto para que o usuário pode definir propriedades para seu aplicativo.

Selecionando um nó do projeto na Solution Explorer e, em seguida, clicando em Propriedades sobre o projeto menu, você pode abrir uma caixa de diálogo que inclui as propriedades de projeto e configuração. Na Visual C# e Visual Basic, tipos derivados desses idiomas, essa caixa de diálogo é exibida como uma página com guias de projeto e o Caixa de diálogo Geral, Ambientes, Opções. Para obter mais informações, consulte Walkthrough: Exposing Project and Configuration Properties.

A estrutura de pacote gerenciado para projetos (MPFProj) fornece classes auxiliares para criar e gerenciar o novo sistema de projeto. Você pode encontrar a fonte de instruções de código e a compilação em MPF para projetos de-2010 de Visual Studio.

Persistência de projeto e propriedades de configuração

As propriedades do projeto e configuração são mantidas em um arquivo de projeto que possui uma extensão de nome de arquivo associado ao tipo de projeto, por exemplo,. csproj,. vbproj e .myproj. Projetos em linguagem normalmente usam um arquivo de modelo para gerar o arquivo de projeto. No entanto, há, na verdade, de várias maneiras para associar modelos e tipos de projeto. Para obter mais informações, consulte Visual Studio Templates e Descrição do diretório de modelo (.Arquivos de Vsdir).

Propriedades de configuração e projeto são criadas adicionando itens ao arquivo de modelo. Essas propriedades, em seguida, estão disponíveis para qualquer projeto criado usando o tipo de projeto que usa este modelo. Visual C#projetos e o MPFProj que usam o MSBuild esquema para arquivos de modelo. Esses arquivos têm uma seção PropertyGroup para cada configuração. Normalmente, as propriedades de projetos são mantidas na primeira seção PropertyGroup, que tem um argumento de configuração definida como uma seqüência nula.

O código a seguir mostra o início de um arquivo de projeto MSBuild básico.

<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>

Nesse arquivo de projeto, <Name> e <SchemaVersion> são propriedades do projeto, e <Optimize> é uma propriedade de configuração.

É responsabilidade do projeto para persistir as propriedades do projeto e a configuração do arquivo de projeto.

Dica

Um projeto pode otimizar persistência somente valores de propriedade persistentes que diferem de seus valores padrão.

Suporte para propriedades de configuração e projeto

O Microsoft.VisualStudio.Package.SettingsPage classe implementa as páginas de propriedades do projeto e configuração. A implementação padrão do SettingsPage oferece propriedades públicas para um usuário em uma grade de propriedade genérica. O Microsoft.VisualStudio.Package.HierarchyNode.GetPropertyPageGuids método seleciona classes derivadas de SettingsPage para grades de propriedades do projeto. O Microsoft.VisualStudio.Package.ProjectNode.GetConfigPropertyPageGuids método seleciona classes derivadas de SettingsPage para grades de propriedade de configuração. O tipo de projeto deve substituir esses métodos para selecionar as páginas de propriedade adequados.

O SettingsPage classe e o Microsoft.VisualStudio.Package.ProjectNode classe oferecer esses métodos para persistir as propriedades de projeto e configuração:

  • Microsoft.VisualStudio.Package.ProjectNode.GetProjectPropertye Microsoft.VisualStudio.Package.ProjectNode.SetProjectProperty persistirem as propriedades do projeto.

  • Microsoft.VisualStudio.Package.SettingsPage.GetConfigPropertye Microsoft.VisualStudio.Package.SettingsPage.SetConfigProperty persistirem as propriedades de configuração.

    Dica

    As implementações do Microsoft.VisualStudio.Package.SettingsPage e Microsoft.VisualStudio.Package.ProjectNode classes usam o Microsoft.Build.BuildEngine (MSBuild) métodos para obter e definir propriedades de projeto e a configuração do arquivo de projeto.

A classe que você deriva de SettingsPage deve implementar Microsoft.VisualStudio.Package.SettingsPage.ApplyChanges e Microsoft.VisualStudio.Package.SettingsPage.BindProperties para persistir as propriedades de projeto ou configuração do arquivo de projeto.

ProvideObjectAttribute e o caminho do registro

As classes derivadas de SettingsPage são projetados para ser compartilhado entre os VSPackages. Para que seja possível para um VSPackage criar uma classe derivada de SettingsPage, adicione um Microsoft.VisualStudio.Shell.ProvideObjectAttribute para uma classe derivada de 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

O VSPackage à qual o atributo está conectado não é importante. Quando um VSPackage é registrado com Visual Studio, a identificação de classe (CLSID) de qualquer objeto que pode ser criado está registrada para que uma chamada para CreateInstance pode criá-la.

O caminho do registro de um objeto que pode ser criado é determinado pela combinação UserRegistryRoot, a palavra, CLSID e o guid do tipo de objeto. Se MyProjectPropertyPage classe tem um guid de {3c693da2-5bca-49b3-bd95-ffe0a39dd723} e o UserRegistryRoot é HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\8.0Exp, em seguida, o caminho do registro seria HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\8.0Exp\CLSID\{3c693da2-5bca-49b3-bd95-ffe0a39dd723}.

Projeto e os atributos de configuração de propriedade e Layout

O CategoryAttribute, DisplayNameAttribute, e DescriptionAttribute atributos determinam o layout, rotulagem e descrição do projeto e a configuração de propriedades em uma página de propriedades genéricas. Esses atributos determinam a categoria, exibem o nome e descrição da opção, respectivamente.

Dica

Atributos equivalentes, SRCategory, LocDisplayName e SRDescription, use os recursos de seqüência de caracteres para localização e estão definidos no MPF para projetos de-2010 de Visual Studio.

Considere o fragmento de código a seguir:

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; }
}

O MyConfigProp a propriedade de configuração aparece na página de propriedades de configuração como Propriedade de configuração de meu na categoria, Categoria Meus. Se a opção for selecionada, a descrição, Minha descrição, aparece no painel Descrição.

Consulte também

Tarefas

Como: adicionar e remover páginas de propriedades

Conceitos

Descrição do diretório de modelo (.Arquivos de Vsdir)

Outros recursos

Walkthrough: Exposing Project and Configuration Properties

Estado VSPackage

Projetos (Visual Studio SDK)

Visual Studio Templates