Prise en charge des propriétés de configuration et de projetSupport for Project and Configuration Properties

Le propriétés fenêtre dans le Visual StudioVisual Studio l’environnement de développement intégré (IDE) peut afficher les propriétés de configuration et de projet.The Properties window in the Visual StudioVisual Studio integrated development environment (IDE) can display project and configuration properties. Vous pouvez fournir une page de propriétés pour votre propre type de projet afin que l’utilisateur peut définir des propriétés pour votre application.You can provide a property page for your own project type so that the user can set properties for your application.

En sélectionnant un nœud de projet dans l’Explorateur de solutions , puis en cliquant sur propriétés sur le projet menu, vous pouvez ouvrir une boîte de dialogue qui inclut le projet et la configuration Propriétés.By selecting a project node in Solution Explorer and then clicking Properties on the Project menu, you can open a dialog box that includes project and configuration properties. Dans Visual C#Visual C# et Visual BasicVisual Basicet le projet de types dérivés de ces langues, cette boîte de dialogue s’affiche comme une page à onglets dans le général, environnement, boîte de dialogue Options.In Visual C#Visual C# and Visual BasicVisual Basic, and project types derived from these languages, this dialog box appears as a tabbed page in the General, Environment, Options Dialog Box. Pour plus d’informations, consultez pas dans la Build : procédure pas à pas : exposition de propriétés de projet et Configuration (c#).For more information, see Not in Build: Walkthrough: Exposing Project and Configuration Properties (C#).

Managed Package Framework pour les projets (MPFProj) fournit des classes d’assistance pour créer et gérer le nouveau système de projet.The Managed Package Framework for Projects (MPFProj) provides helper classes for creating and managing new project system. Vous trouverez la source des instructions de code et la compilation à MPF pour les projets - Visual Studio 2013.You can find the source code and compilation instructions at MPF for Projects - Visual Studio 2013.

Persistance de projet et des propriétés de ConfigurationPersistence of Project and Configuration Properties

Propriétés de configuration et de projet sont conservées dans un fichier projet qui a toute extension de nom de fichier associé avec le type de projet, par exemple, .csproj, .vbproj et .myproj.Project and configuration properties are persisted in a project file that has any file name extension associated with the project type, for example, .csproj, .vbproj, and .myproj. Les projets de langage utilisent généralement un fichier de modèle pour générer le fichier de projet.Language projects typically use a template file to generate the project file. Toutefois, il existe en fait plusieurs façons d’associer des modèles et des types de projets.However, there are actually several ways to associate project types and templates. Pour plus d’informations, consultez Description du modèle de répertoire (. Fichiers VSDir).For more information, see Template Directory Description (.Vsdir) Files.

Propriétés de configuration et de projet sont créées en ajoutant des éléments dans le fichier de modèle.Project and configuration properties are created by adding items to the template file. Ces propriétés sont ensuite disponibles pour tout projet créé en utilisant le type de projet qui utilise ce modèle.These properties are then available to any project created by using the project type that uses this template. Visual C#Visual C# projets et le MPFProj utilisent tous deux le pas dans la Build : vue d’ensemble de MSBuild schéma pour les fichiers de modèle. projects and the MPFProj both use the Not in Build: MSBuild Overview schema for template files. Ces fichiers ont une section PropertyGroup pour chaque configuration.These files have a PropertyGroup section for each configuration. Propriétés des projets sont généralement conservées dans la première section PropertyGroup, ce qui a un argument de la Configuration de la valeur est une chaîne null.Properties of projects are typically persisted in the first PropertyGroup section, which has a Configuration argument set to a null string.

Le code suivant montre le début d’un fichier de projet MSBuild base.The following code shows the start of a basic MSBuild project file.

<Project MSBuildVersion="2.0" DefaultTargets="Build" xmlns="http://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>  

Dans ce fichier de projet, <Name> et <SchemaVersion> sont des propriétés du projet, et <Optimize> est une propriété de configuration.In this project file, <Name> and <SchemaVersion> are project properties, and <Optimize> is a configuration property.

Il est la responsabilité du projet pour rendre persistantes les propriétés de projet et la configuration du fichier projet.It is the responsibility of the project to persist the project and configuration properties of the project file.

Note

Un projet peut optimiser la persistance par des valeurs de propriété uniquement persistantes qui diffèrent de leurs valeurs par défaut.A project can optimize persistence by persisting only property values that differ from their default values.

Prise en charge des propriétés de configuration et de projetSupport for Project and Configuration Properties

Le Microsoft.VisualStudio.Package.SettingsPage classe implémente des pages de propriétés de projet et de configuration.The Microsoft.VisualStudio.Package.SettingsPage class implements project and configuration property pages. L’implémentation par défaut de SettingsPage propose des propriétés publiques à un utilisateur dans une grille de propriétés génériques.The default implementation of SettingsPage offers public properties to a user in a generic property grid. Le Microsoft.VisualStudio.Package.HierarchyNode.GetPropertyPageGuids méthode sélectionne des classes dérivées de SettingsPage pour les grilles de propriétés de projet.The Microsoft.VisualStudio.Package.HierarchyNode.GetPropertyPageGuids method selects classes derived from SettingsPage for project property grids. Le Microsoft.VisualStudio.Package.ProjectNode.GetConfigPropertyPageGuids méthode sélectionne des classes dérivées de SettingsPage pour les grilles de propriétés de configuration.The Microsoft.VisualStudio.Package.ProjectNode.GetConfigPropertyPageGuids method selects classes derived from SettingsPage for configuration property grids. Votre type de projet doit substituer ces méthodes pour sélectionner les pages de propriétés appropriée.Your project type should override these methods to select the appropriate property pages.

Le SettingsPage classe et la Microsoft.VisualStudio.Package.ProjectNode classe offrent ces méthodes pour rendre persistantes les propriétés de configuration et de projet :The SettingsPage class and the Microsoft.VisualStudio.Package.ProjectNode class offer these methods to persist project and configuration properties:

  • Microsoft.VisualStudio.Package.ProjectNode.GetProjectProperty et Microsoft.VisualStudio.Package.ProjectNode.SetProjectProperty conserver les propriétés du projet.Microsoft.VisualStudio.Package.ProjectNode.GetProjectProperty and Microsoft.VisualStudio.Package.ProjectNode.SetProjectProperty persist project properties.

  • Microsoft.VisualStudio.Package.SettingsPage.GetConfigProperty et Microsoft.VisualStudio.Package.SettingsPage.SetConfigProperty conserver les propriétés de configuration.Microsoft.VisualStudio.Package.SettingsPage.GetConfigProperty and Microsoft.VisualStudio.Package.SettingsPage.SetConfigProperty persist configuration properties.

    Note

    Les implémentations de la Microsoft.VisualStudio.Package.SettingsPage et Microsoft.VisualStudio.Package.ProjectNode classes utilisent la Microsoft.Build.BuildEngine (MSBuild) des méthodes pour obtenir et définir les propriétés de configuration et de projet à partir du fichier projet.The implementations of the Microsoft.VisualStudio.Package.SettingsPage and Microsoft.VisualStudio.Package.ProjectNode classes use the Microsoft.Build.BuildEngine (MSBuild) methods to get and set project and configuration properties from the project file.

    La classe que vous dérivez de SettingsPage doit implémenter Microsoft.VisualStudio.Package.SettingsPage.ApplyChanges et Microsoft.VisualStudio.Package.SettingsPage.BindProperties pour conserver les propriétés de configuration du projet ou du fichier projet.The class you derive from SettingsPage must implement Microsoft.VisualStudio.Package.SettingsPage.ApplyChanges and Microsoft.VisualStudio.Package.SettingsPage.BindProperties to persist project or configuration properties of the project file.

ProvideObjectAttribute et chemin d’accès du RegistreProvideObjectAttribute and Registry Path

Les classes dérivées de SettingsPage sont conçus pour être partagés entre les VSPackages.Classes derived from SettingsPage are designed to be shared across VSPackages. Pour permettre à un VSPackage créer une classe dérivée de SettingsPage, ajoutez un Microsoft.VisualStudio.Shell.ProvideObjectAttribute à une classe dérivée de Microsoft.VisualStudio.Shell.Package.To make it possible for a VSPackage to create a class derived from SettingsPage, add a Microsoft.VisualStudio.Shell.ProvideObjectAttribute to a class derived from Microsoft.VisualStudio.Shell.Package.

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

Le VSPackage à laquelle l’attribut est attaché est sans important.The VSPackage to which the attribute is attached is unimportant. Quand un VSPackage est enregistré avec Visual StudioVisual Studio, l’id de classe (CLSID) de n’importe quel objet qui peut être créé est enregistré afin qu’un appel à CreateInstance pouvez la créer.When a VSPackage is registered with Visual StudioVisual Studio, the class id (CLSID) of any object that can be created is registered so that a call to CreateInstance can create it.

Le chemin d’accès de Registre d’un objet qui peut être créé est déterminé en combinant UserRegistryRoot, le mot, CLSID et le guid du type d’objet.The registry path of an object that can be created is determined by combining UserRegistryRoot, the word, CLSID, and the guid of the object type. Si MyProjectPropertyPage classe possède un guid de {3c693da2-5bca-49b3-bd95-ffe0a39dd723} et le UserRegistryRoot est HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\8.0Exp, alors le chemin d’accès de Registre serait HKEY_CURRENT_USER\Software\Microsoft\VisualStudio \8.0Exp\CLSID\{3c693da2-5bca-49b3-bd95-ffe0a39dd723}.If MyProjectPropertyPage class has a guid of {3c693da2-5bca-49b3-bd95-ffe0a39dd723} and the UserRegistryRoot is HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\8.0Exp, then the registry path would be HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\8.0Exp\CLSID\{3c693da2-5bca-49b3-bd95-ffe0a39dd723}.

Projet et les attributs de propriété de Configuration et la dispositionProject and Configuration Property Attributes and Layout

Le CategoryAttribute, DisplayNameAttribute, et DescriptionAttribute attributs déterminent la disposition, l’étiquetage et la description des propriétés de projet et de configuration dans une page de propriétés génériques.The CategoryAttribute, DisplayNameAttribute, and DescriptionAttribute attributes determine the layout, labeling, and description of project and configuration properties in a generic property page. Ces attributs déterminent la catégorie, le nom complet et description de l’option, respectivement.These attributes determine the category, display name, and description of the option, respectively.

Note

Attributs équivalents, SRCategory, LocDisplayName et SRDescription, utilisez les ressources de type chaîne pour la localisation et sont définies dans MPF pour les projets - Visual Studio 2013.Equivalent attributes, SRCategory, LocDisplayName, and SRDescription, use string resources for localization and are defined in MPF for Projects - Visual Studio 2013.

Prenons le fragment de code suivant :Consider the following code fragment:

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

Le MyConfigProp propriété configuration apparaît dans la page de propriété de configuration en tant que mes propriété Config dans la catégorie, ma catégorie.The MyConfigProp configuration property appears on the configuration property page as My Config Property in the category, My Category. Si l’option est sélectionnée, la description, ma Description, apparaît dans le panneau de description.If the option is selected, the description, My Description, appears in the description panel.

Voir aussiSee Also

Ajout et suppression de Pages de propriétés Adding and Removing Property Pages
Projets Projects
Fichiers de description de répertoire de modèles (.Vsdir)Template Directory Description (.Vsdir) Files