Compartir a través de


Compatibilidad para el proyecto y propiedades de configuración

La ventana de Propiedades en el entorno de desarrollo integrado de Visual Studio (IDE) puede mostrar proyecto y propiedades de configuración. Puede proporcionar una página de propiedades dispone del tipo de proyecto para que el usuario puede establecer las propiedades de la aplicación.

Seleccione un nodo de proyecto en Explorador de soluciones y haga clic en Propiedades en el menú de proyecto , puede abrir un cuadro de diálogo que incluya proyecto y propiedades de configuración. En Visual C# y Visual Basic, y los tipos de proyecto derivados de estos lenguajes, este cuadro de diálogo aparece como una página con fichas en General, Entorno, Opciones (Cuadro de diálogo). Para obtener más información, vea Walkthrough: Exposing Project and Configuration Properties.

El managed package para proyectos (MPFProj) proporciona clases auxiliares para crear y administrar el nuevo sistema de proyectos. Puede encontrar las instrucciones de código fuente y de compilación en MPF para proyectos - Visual Studio 2010.

Persistencia de proyecto y propiedades de configuración

El proyecto y propiedades de configuración se conservan en un archivo de proyecto con la extensión de nombre de archivo asociado al tipo de proyecto, por ejemplo, .csproj, .vbproj, y .myproj. Los proyectos de lenguaje utilizan normalmente un archivo de plantilla para generar el archivo de proyecto. Sin embargo, existe varias maneras de asociar tipos de proyecto y plantillas. Para obtener más información, vea Visual Studio Templates y Descripción del directorio de plantillas (. archivos de Vsdir).

El proyecto y propiedades de configuración se crean agregando elementos al archivo de plantilla. Estas propiedades son disponible a cualquier proyecto creado con el tipo de proyecto que utiliza esta plantilla. los proyectos y el MPFProj ambos deVisual C# utilizan el esquema de MSBuild para los archivos de plantilla. Estos archivos tienen una sección PropertyGroup para cada configuración. Las propiedades de proyectos se conservan normalmente en la primera sección PropertyGroup, que tiene un argumento de configuración establecido en una cadena nula.

El código siguiente muestra el inicio de un archivo de proyecto básico de 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>

En este archivo de proyecto, <Name> y <SchemaVersion> son propiedades del proyecto, y <Optimize> es una propiedad de configuración.

Es responsabilidad del proyecto de guardar el proyecto y propiedades de configuración del archivo de proyecto.

Nota

Un proyecto puede optimizar persistencia conserva solo los valores de propiedad que difieren de los valores predeterminados.

Compatibilidad para el proyecto y propiedades de configuración

La clase de Microsoft.VisualStudio.Package.SettingsPage implementa las páginas del proyecto y la propiedad de configuración. la implementación predeterminada de SettingsPage proporciona propiedades públicas a un usuario en una cuadrícula de propiedades genérica. El método de Microsoft.VisualStudio.Package.HierarchyNode.GetPropertyPageGuids selecciona las clases derivadas de SettingsPage en las cuadrículas de propiedades del proyecto. el método de Microsoft.VisualStudio.Package.ProjectNode.GetConfigPropertyPageGuids selecciona las clases derivadas de SettingsPage para las cuadrículas de la propiedad de configuración. El tipo de proyecto debe invalidar estos métodos para seleccionar las páginas de propiedades adecuadas.

La clase de SettingsPage y la clase de Microsoft.VisualStudio.Package.ProjectNode proporcionan estos métodos para conservar proyecto y propiedades de configuración:

  • Microsoft.VisualStudio.Package.ProjectNode.GetProjectProperty y Microsoft.VisualStudio.Package.ProjectNode.SetProjectProperty conservan las propiedades del proyecto.

  • Microsoft.VisualStudio.Package.SettingsPage.GetConfigProperty y Microsoft.VisualStudio.Package.SettingsPage.SetConfigProperty conservan las propiedades de configuración.

    Nota

    Las implementaciones de las clases de Microsoft.VisualStudio.Package.SettingsPage y de Microsoft.VisualStudio.Package.ProjectNode utilizan los métodos de Microsoft.Build.BuildEngine (MSBuild) para obtener y establecer proyecto y propiedades de configuración del archivo de proyecto.

La clase que se deriva de SettingsPage debe implementar Microsoft.VisualStudio.Package.SettingsPage.ApplyChanges y Microsoft.VisualStudio.Package.SettingsPage.BindProperties para conservar proyecto o las propiedades de configuración del archivo de proyecto.

ProvideObjectAttribute y ruta de registro

Las clases derivadas de SettingsPage están diseñados para ser compartidas a través de VSPackages. Para permitir que un VSPackage cree una clase derivada de SettingsPage, agregue Microsoft.VisualStudio.Shell.ProvideObjectAttribute a una clase 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

El Paquete al que se asocia el atributo es irrelevante. Cuando un Paquete se registra con Visual Studio, el id. de clase (CLSID) de cualquier objeto que puedan crear se registra de forma que una llamada al CreateInstance puede crearlo.

La ruta de acceso de registro de un objeto que puede crear se determina mediante la combinación UserRegistryRoot, word, CLSID, y el guid del tipo de objeto. Si la clase de MyProjectPropertyPage tiene un guid {de 3c693da2-5bca-49b3-bd95-ffe0a39dd723} y el UserRegistryRoot es \Software\Microsoft\VisualStudio\8.0Exp, then the registry path would be HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\8.0Exp\CLSID \ {HKEY_CURRENT_USER 3c693da2-5bca-49b3-bd95-ffe0a39dd723}.

proyecto y atributos y diseño de la propiedad de configuración

CategoryAttribute, DisplayNameAttribute, y los atributos de DescriptionAttribute determinan el diseño, etiquetar, y la descripción del proyecto y propiedades de configuración de una página de propiedades genérica. estos atributos determinan la categoría, el nombre para mostrar, y la descripción de la opción, respectivamente.

Nota

Los atributos equivalentes, SRCategory, LocDisplayName, y SRDescription, recursos de cadena de uso para la localización y son definido en MPF para proyectos - Visual Studio 2010.

Observe el fragmento de código siguiente:

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

La propiedad de configuración de MyConfigProp aparece en la página de propiedades de configuración como Mi propiedad de configuración en la categoría, mi categoría. Si la opción está seleccionada, la descripción, mi descripción, aparece en el panel descripción.

Vea también

Tareas

Cómo: Agregar y quitar las páginas de propiedades

Conceptos

Descripción del directorio de plantillas (. archivos de Vsdir)

Otros recursos

Walkthrough: Exposing Project and Configuration Properties

estado de VSPackage

Proyectos (SDK de Visual Studio)

Visual Studio Templates