Freigeben über


Unterstützung für Projekt-und Konfigurationseigenschaften

Das EigenschaftenVisual Studio Fenster in der integrierten Entwicklungsumgebung (IDE) kann Projekt- und Konfigurationseigenschaften darstellen. Sie können eine Eigenschaftenseite für bereitstellen, Projekttyp besitzen, damit der Benutzer Eigenschaften für die Anwendung festlegen kann.

Wenn Sie einen Projektknoten im Projektmappen-Explorer auswählen und dann auf Eigenschaften im Menü Projekt , können Sie ein Dialogfeld zu öffnen, das Projekt- und Konfigurationseigenschaften enthält. In Visual C# und Visual Basicund Projekttypen, die von diesen Sprachen abgeleitet werden, wird dieses Dialogfeld angezeigt als Seite im Registerkartenformat in Allgemein, Umgebung, Dialogfeld "Optionen". Weitere Informationen finden Sie unter Walkthrough: Exposing Project and Configuration Properties.

Das verwaltete Paketframework für Projekte (MPFProj) stellt Hilfsklassen zum Erstellen und Verwalten des neuen Projektsystems bereit. Sie können die Quellcode- und Anweisungen Kompilierung auf MPF for Projects - Visual Studio 2010.

Dauerhaftigkeit von Projekt-und Konfigurationseigenschaften

Projekt- und Konfigurationseigenschaften werden in einer Projektdatei beibehalten, die eine Dateinamenerweiterung verfügt, die mit dem Projekttyp, z. B. .csproj oder .vbproj, .myproj zugeordnet ist. Sprachen Projekte verwenden normalerweise eine Vorlagendatei, um die Projektdatei zu generieren. Es gibt jedoch eigentlich verschiedene Möglichkeiten, Projekttypen und Vorlagen zu verknüpfen. Weitere Informationen finden Sie unter Visual Studio Templates und (Vorlagen-Verzeichnis-Beschreibung. Dateien Vsdir).

Projekt- und Konfigurationseigenschaften werden erstellt, indem Elemente in die Vorlagendatei hinzugefügt wird. Diese Eigenschaften sind dann auf jedem Projekt zur Verfügung, das indem Sie den Projekttyp erstellt wurde, der diese Vorlage verwendet wird. Visual C# Projekten und das MPFProj beide verwenden das MSBuild Schema für Vorlagendateien. Diese Dateien sind im Abschnitt Eigenschaftengruppen einen für jede Konfiguration. Eigenschaften von Projekten werden normalerweise im ersten Abschnitt Eigenschaftengruppen beibehalten, der ein Argument Konfiguration verfügt, das auf eine NULL-Zeichenfolge festgelegt ist.

Der folgende Code zeigt den Beginn einer grundlegenden MSBuild-Projektdatei angegeben.

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

In der Projektdatei sind <Name> und <SchemaVersion> Projekteigenschaften, und <Optimize> ist eine Konfigurationseigenschaft.

Es liegt in der Verantwortung des Projekts, die Projekt- und Konfigurationseigenschaften der Projektdatei beizubehalten.

Hinweis

Ein Projekt kann Dauerhaftigkeit optimieren, indem es nur von Eigenschaftswerten verwaltet, die mit ihren Standardwerten abweichen.

Unterstützung für Projekt-und Konfigurationseigenschaften

Die Microsoft.VisualStudio.Package.SettingsPage-Klasse implementiert Projekt- und Konfiguration Eigenschaftenseiten. Die Standardimplementierung von SettingsPage öffentliche Eigenschaften bietet ein Benutzer in einem generischen Eigenschaftenraster angezeigt. Die Microsoft.VisualStudio.Package.HierarchyNode.GetPropertyPageGuids-Methode wählt die Klassen von Projekteigenschaften für SettingsPage Raster abgeleitet sind. Die Microsoft.VisualStudio.Package.ProjectNode.GetConfigPropertyPageGuids-Methode wählt die Klassen, die von SettingsPage für Konfigurationseigenschaft Eigenschaftenraster abgeleitet sind. Der Projekttyp sollte diese Methode überschreiben, um die entsprechende Seite Eigenschaften auszuwählen.

Die SettingsPage-Klasse und die Microsoft.VisualStudio.Package.ProjectNode-Klasse bieten diese Methode auf, um Projekt- und Konfigurationseigenschaften beizubehalten:

  • Microsoft.VisualStudio.Package.ProjectNode.GetProjectProperty und behalten Microsoft.VisualStudio.Package.ProjectNode.SetProjectProperty Projekteigenschaften bei.

  • Microsoft.VisualStudio.Package.SettingsPage.GetConfigProperty und behalten Microsoft.VisualStudio.Package.SettingsPage.SetConfigProperty Konfigurationseigenschaften.

    Hinweis

    Die Implementierungen der Microsoft.VisualStudio.Package.SettingsPage und Microsoft.VisualStudio.Package.ProjectNode-Klassen verwenden die Methoden Microsoft.Build.BuildEngine (MSBuild), um Projekt- und Konfigurationseigenschaften aus der Projektdatei abzurufen und festzulegen.

Die Klasse, die Sie aus SettingsPage berechnen, muss Microsoft.VisualStudio.Package.SettingsPage.ApplyChanges und Microsoft.VisualStudio.Package.SettingsPage.BindProperties implementieren, um Projekt- oder Konfigurationseigenschaften der Projektdatei beizubehalten.

ProvideObjectAttribute und Registrierungs-Pfad

Klassen, die von SettingsPage abgeleitet sind, werden zu VSPackages freigegeben werden sollen. Damit dies möglich zu machen, sodass ein VSPackage eine Klasse erstellt, die von SettingsPageabgeleitet ist, fügen Sie Microsoft.VisualStudio.Shell.ProvideObjectAttribute einer Klasse, die von Microsoft.VisualStudio.Shell.Packageabgeleitet ist.

<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

VSPackage, in denen das Attribut zugewiesen wird, ist nicht relevant. Wenn ein VSPackage mit Visual Studioregistriert ist, werden die Klassen-ID (CLSID) eines beliebigen Objekts, das erstellt werden kann, registriert, sodass ein Aufruf des CreateInstance es erstellt werden kann.

Der Registrierungspfad eines Objekts, das erstellt werden kann, wird bestimmt, indem UserRegistryRoot, das Wort CLSID, und die GUID des Objekttyps kombiniert. Wenn MyProjectPropertyPage-Klasse ein 3c693da2-5bca-49b3-bd95-ffe0a39dd723 {GUID} hat und das UserRegistryRoot ist HKEY_CURRENT_USER \ Software \ Microsoft \ VisualStudio \ 8.0Exp, würde der Registrierungspfad HKEY_CURRENT_USER \ Software \ Microsoft \ VisualStudio \ 8.0Exp \ CLSID \ {sein 3c693da2-5bca-49b3-bd95-ffe0a39dd723}.

Projekt-und Konfigurations-Eigenschaft-Attribute und Lay-out

CategoryAttribute, DisplayNameAttributeund DescriptionAttribute-Attribute legen das Lay-out, das Bezeichnen und die Beschreibung von Projekt- und Konfigurationseigenschaften in einer generischen Eigenschaftenseite. Diese Attribute legen die Kategorie neben dem Anzeigenamen und der Beschreibung der Option.

Hinweis

Zugehörige Attribute, SRCategory, LocDisplayName und SRDescription, verwenden zeichenfolgenressourcen für die Lokalisierung und werden in MPF for Projects - Visual Studio 2010definiert.

Betrachten Sie das folgende Codefragment:

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

Die MyConfigProp Konfigurationseigenschaft wird auf der Eigenschaftenseite Konfiguration als Meine Config-Eigenschaft in der Kategorie, Meine Kategorie. Wenn die Option aktiviert wurde, wird die Beschreibung, Meine Beschreibungim Bereich Beschreibung.

Siehe auch

Aufgaben

Gewusst wie: Hinzufügen und Entfernen von Eigenschaftenseiten

Konzepte

(Vorlagen-Verzeichnis-Beschreibung. Dateien Vsdir)

Weitere Ressourcen

Walkthrough: Exposing Project and Configuration Properties

VSPackage-Zustand

Projekte (Visual Studio SDK)

Visual Studio Templates