Prise en charge des propriétés de projet et de configuration
La fenêtre de Propriétés dans l'environnement de développement intégré (IDE) de (IDE) Visual Studio peut afficher les propriétés de projet et de configuration. Vous pouvez fournir une page de propriétés de votre propre type de projet afin que l'utilisateur puisse définir les propriétés de votre application.
En sélectionnant un nœud de projet dans Explorateur de solutions puis en cliquant sur Propriétés dans le menu de Projet , vous pouvez ouvrir une boîte de dialogue qui inclut les propriétés de projet et de configuration. Dans Visual C# et Visual Basic, et le projet types dérivés de ces langages, cette boîte de dialogue apparaît comme une page à onglets de Général, Environnement, boîte de dialogue Options. Pour plus d'informations, consultez Walkthrough: Exposing Project and Configuration Properties.
Managed package pour les projets (MPFProj) fournit des classes d'assistance pour créer et gérer le nouveau système de projet. Vous pouvez rechercher l'instruction de code source et de compilation dans MPF for Projects - Visual Studio 2010.
Persistance des propriétés du projet et de configuration
Les propriétés de projet et de configuration sont rendues persistantes dans un fichier projet qui contient une extension de nom de fichier associée au type de projet, par exemple, .csproj, .vbproj, et .myproj. Les projets dans un langage utilisent en général un fichier modèle pour générer le fichier projet. Toutefois, il existe réellement plusieurs façons d'associer des types et des modèles de projet. Pour plus d'informations, consultez Visual Studio Templates et Description du répertoire de modèle (. Fichiers Vsdir).
Les propriétés de projet et de configuration sont créées en ajoutant des éléments au fichier modèle. Ces propriétés sont ensuite disponibles à tout projet créé à l'aide de le type de projet qui utilise ce modèle. les projets csprcs et le MPFProj les deux utilisent le schéma de MSBuild pour les fichiers modèles. Ces fichiers ont une section PropertyGroup pour chaque configuration. Les propriétés des projets sont généralement persistantes dans la première section PropertyGroup, qui possède un argument de configuration défini une chaîne nulle.
Le code suivant indique le début d'un fichier projet de base 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>
dans ce fichier projet, <Name> et <SchemaVersion> sont des propriétés de projet, et <Optimize> est une propriété de configuration.
Il est de la responsabilité du projet de rendre les propriétés de projet et de configuration du fichier projet.
Notes
Un projet peut optimiser la persistance de la persistance uniquement les valeurs de propriété qui diffèrent de leurs valeurs par défaut.
Prise en charge des propriétés de projet et de configuration
La classe d' Microsoft.VisualStudio.Package.SettingsPage implémente des pages de propriétés du projet et de configuration. L'implémentation par défaut d' SettingsPage offre des propriétés publiques à un utilisateur dans une grille de propriétés générique. La méthode d' Microsoft.VisualStudio.Package.HierarchyNode.GetPropertyPageGuids sélectionne des classes dérivées d' SettingsPage pour les grilles de propriété du projet. La méthode d' Microsoft.VisualStudio.Package.ProjectNode.GetConfigPropertyPageGuids sélectionne des classes dérivées d' SettingsPage pour les grilles des propriétés de configuration. Votre type de projet doit substituer ces méthodes pour sélectionner les pages de propriétés appropriées.
La classe d' SettingsPage et la classe d' Microsoft.VisualStudio.Package.ProjectNode offrent ces méthodes pour rendre les propriétés de projet et de configuration :
Microsoft.VisualStudio.Package.ProjectNode.GetProjectProperty et Microsoft.VisualStudio.Package.ProjectNode.SetProjectProperty persistantes les propriétés du projet.
Microsoft.VisualStudio.Package.SettingsPage.GetConfigProperty et Microsoft.VisualStudio.Package.SettingsPage.SetConfigProperty persistantes les propriétés de configuration.
Notes
Les implémentations des classes d' Microsoft.VisualStudio.Package.SettingsPage et d' Microsoft.VisualStudio.Package.ProjectNode utilisent les méthodes d' Microsoft.Build.BuildEngine (MSBuild) pour obtenir et définir les propriétés de projet et de configuration du fichier projet.
La classe que vous dérivez d' SettingsPage doit implémenter Microsoft.VisualStudio.Package.SettingsPage.ApplyChanges et Microsoft.VisualStudio.Package.SettingsPage.BindProperties pour rendre persistantes les propriétés de projet ou de configuration du fichier projet.
ProvideObjectAttribute et chemin d'accès au Registre
Les classes dérivées d' SettingsPage sont conçues pour être partagées entre les VSPackages. Pour permettre à un VSPackage crée une classe dérivée d' SettingsPage, ajoutez Microsoft.VisualStudio.Shell.ProvideObjectAttribute à une classe dérivée d' 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
Le VSPackage auquel l'attribut est attaché est sans importance. Lorsqu'un VSPackage est enregistré avec Visual Studio, l'identificateur de classe (CLSID) de tout objet qui peut être créé est enregistré afin qu'un appel à l' CreateInstance puisse le créer.
Le chemin d'accès au Registre d'un objet qui peut être créé est déterminé en combinant UserRegistryRoot, le mot, le CLSID, et le GUID du type d'objet. Si la classe d' MyProjectPropertyPage a un GUID de 3c693da2-5bca-49b3-bd95-ffe0a39dd723 {} et l'UserRegistryRoot est \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}.
Attributs et mise en page de propriétés du projet et de configuration
CategoryAttribute, DisplayNameAttribute, et les attributs d' DescriptionAttribute déterminent la disposition, étiqueter, et la description des propriétés de projet et de configuration dans une page de propriétés générique. ces attributs déterminent la catégorie, le nom complet, et la description de l'option, respectivement.
Notes
Des attributs, le SRCategory, le LocDisplayName, et le SRDescription d'équivalent, ressources de type chaîne en utiliser pour la localisation et sont définis dans MPF for Projects - Visual Studio 2010.
Prenons le fragment de code suivant :
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 propriété configuration d' MyConfigProp apparaît sur la page de propriétés de configuration sous ma propriété de configuration dans la catégorie, ma catégorie. Si l'option est sélectionnée, la description, Description, apparaît dans le panneau de description.
Voir aussi
Tâches
Comment : Ajouter et supprimer des pages de propriétés
Concepts
Description du répertoire de modèle (. Fichiers Vsdir)
Autres ressources
Walkthrough: Exposing Project and Configuration Properties