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 les propriétés de 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 la 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 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 d’un projet et les propriétés de 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 pouvez trouver la source des instructions de code et la compilation à MPF de 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. 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 réellement plusieurs manières pour 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 active (. 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 au 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éé à l’aide du 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 des 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 de projets sont généralement conservées dans la première section PropertyGroup, ce qui a un argument de la Configuration définie sur 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 illustre 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 responsable de 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

La Microsoft.VisualStudio.Package.SettingsPage classe implémente des pages de propriétés de projet et la 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 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 de dérivation 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 le 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 tout 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 du Registre d’un objet qui peut être créé est déterminée 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 a un guid de {3c693da2-5bca-49b3-bd95-ffe0a39dd723} et le UserRegistryRoot est HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\8.0Exp, le chemin d’accès du 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 mise en page, 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, nom complet et la 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 chaîne pour la localisation et sont définies dans MPF de 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 Config propriété dans la catégorie, catégorie Mes.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 volet 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