Freigeben über


Eigenschaftenseiten

Benutzer können projektkonfigurationsabhängige und unabhängige Eigenschaften mithilfe von Eigenschaftenseiten anzeigen und ändern. Eine Schaltfläche "Eigenschaftenseiten" ist im Eigenschaftenfenster oder auf Projektmappen-Explorer Symbolleiste für Objekte aktiviert, die eine Eigenschaftenseitenansicht des ausgewählten Objekts bereitstellen. Eigenschaftenseiten werden von der Umgebung erstellt und stehen für Lösungen und Projekte zur Verfügung. Sie können jedoch auch für Projektelemente zur Verfügung gestellt werden, die konfigurationsabhängige Eigenschaften verwenden. Diese Funktion kann verwendet werden, wenn Dateien in einem Projekt unterschiedliche Compilerswitcheinstellungen benötigen, um ordnungsgemäß zu erstellen.

Verwenden von Eigenschaftenseiten

Wenn bereits eine Eigenschaftenseite angezeigt wird und sich die Auswahl ändert (z. B. von einer Lösung zu einem Projekt), werden die in den Seiten angezeigten Informationen geändert, um die Eigenschaften für die neue Auswahl anzuzeigen. Wenn für das Objekt keine Eigenschaften vorhanden sind, die Eigenschaftenseiten unterstützen, ist die Eigenschaftenseite leer.

Wenn mehrere Objekte ausgewählt sind, zeigt die Eigenschaftenseite die Schnittmenge der Eigenschaften für alle ausgewählten Elemente an. Wenn das ausgewählte Element keine konfigurationsabhängigen Eigenschaften enthält und auf die Schaltfläche "Eigenschaftenseiten" auf der Symbolleiste Projektmappen-Explorer geklickt wird, ändert sich der Fokus auf die Eigenschaftenfenster. Weitere Informationen zum Eigenschaftenfenster und zur Auswahl finden Sie unter Erweitern von Eigenschaften.

Wenn Eigenschaften für mehrere Objekte angezeigt werden und Sie einen Wert auf einer Eigenschaftenseite ändern, werden alle Werte für die Objekte auf den neuen Wert festgelegt, auch wenn sie anfangs unterschiedlich waren und die Seite leer war, wenn die Eigenschaften eines einzelnen Objekts angezeigt wurden.

Es gibt zwei allgemeine Typen von Dialogfeldern für ProjectProperty-Seiten in Visual Studio. Im ersten Beispiel werden für Visual Basic-Projekte die Eigenschaftenseiten mithilfe eines Feldformats angezeigt, wie im folgenden Screenshot gezeigt. Im zweiten, weiter unten in diesem Abschnitt gezeigt, hosten die Eigenschaftenseite ein Eigenschaftenraster, das dem im Eigenschaftenfenster ähnlich ist.

Visual Basic-Eigenschaftenseiten

Dialogfeld 'Projekteigenschaftenseiten' mit Feldformat und Struktur

Die Strukturstruktur im Dialogfeld "Eigenschaftenseiten" wird nicht mithilfe von IVsHierarchy. erstellt. Die Umgebung, basierend auf dem Ebenennamen, der von den ISpecifyPropertyPages Schnittstellen an sie übergeben wird, erstellt IVsPropertyPage sie.

Es sind nur zwei Kategorien auf oberster Ebene auf Visual Studio-Eigenschaftenseiten verfügbar:

  • Allgemeine Eigenschaften, die konfigurationsunabhängige Informationen für das ausgewählte Objekt oder die ausgewählten Objekte anzeigen. Wenn eine der Allgemeinen Eigenschaften-Unterkategorien ausgewählt ist, stehen die Optionen "Konfiguration", "Plattform" und "Configuration Manager" am oberen Rand des Dialogfelds nicht zur Verfügung.

  • Konfigurationseigenschaften, die konfigurationsabhängige Informationen zu Debug-, Optimierungs- und Buildparametern für die Lösung oder das Projekt enthalten.

    Sie können keine zusätzlichen Kategorien auf oberster Ebene erstellen, aber Sie können auswählen, dass eine oder die andere in Ihrer Implementierung IVsPropertyPagenicht angezeigt werden soll. Wenn Sie beispielsweise keine konfigurationsunabhängigen Eigenschaften haben, die für ein Objekt angezeigt werden sollen, können Sie die Kategorie "Allgemeine Eigenschaften" nicht anzeigen. Sie zeigen allgemeine Eigenschaften an, wenn ISpecifyPropertyPages sie aus den Browseobjekt- und Konfigurationseigenschaften des Elements implementiert werden, wenn Sie das Konfigurationsobjekt implementieren ISpecifyPropertyPages (das Objekt implementiert IVsCfg, IVsProjectCfgund verwandte Schnittstellen).

    Jede Kategorie, die unter einer Kategorie der obersten Ebene angezeigt wird, stellt eine separate Eigenschaftenseite dar. Kategorie- und Unterkategorieneinträge, die im Dialogfeld zur Verfügung stehen, werden durch Ihre Implementierung und Dies ISpecifyPropertyPages IVsPropertyPagebestimmt.

    IDispatch Objekte für Elemente im Auswahlcontainer, die Eigenschaften enthalten, die auf Eigenschaftenseiten angezeigt werden sollen, implementieren ISpecifyPropertyPages , um eine Liste der Klassen-IDs auflisten zu können. Die Klassen-IDs werden als Variablen ISpecifyPropertyPages übergeben und zum Instanziieren der Eigenschaftenseiten verwendet. Die Liste der Klassen-IDs wird auch übergeben, um IVsPropertyPage die Struktur auf der linken Seite des Dialogfelds zu erstellen. Die Eigenschaftenseiten übergeben dann Informationen zurück an das IDispatch Objekt, das die Informationen für jede Seite implementiert ISpecifyPropertyPages und ausfüllt.

    Die Eigenschaften des Browseobjekts werden für IDispatch jedes Objekt im Auswahlcontainer abgerufen.

    Die Implementierung Help::DisplayTopicFromF1Keyword in Ihrem VSPackage bietet die Funktionalität für die Schaltfläche "Hilfe".

    Weitere Informationen finden Sie in IDispatch der MSDN Library.ISpecifyPropertyPages

    Der zweite Typ von Eigenschaftenseiten, die in den Beispielen angezeigt werden, hostet eine Form des Eigenschaftenrasters, wie im folgenden Screenshot gezeigt.

    VC-Eigenschaftenseiten

    Dialogfeld 'Eigenschaftenseiten' mit Eigenschaftenraster

    Die Schnittstellen IVSMDPropertyBrowser und IVSMDPropertyGrid (in vsmanaged.h deklariert) werden verwendet, um das Eigenschaftenraster in einem Dialogfeld oder Fenster zu erstellen und aufzufüllen.

    Die Architektur von Projekten hat sich von früheren Versionen von Visual Studio erheblich verändert. Insbesondere hat sich der Begriff, von dem das Projekt aktiv ist, geändert. In Visual Studio gibt es kein Konzept eines aktiven Projekts. In früheren Entwicklungsumgebungen war das aktive Projekt das Projekt, in dem Befehle erstellt und bereitgestellt werden, standardmäßig unabhängig vom Kontext. Die Lösung steuert und willkürlich, welche Befehle erstellt und bereitgestellt werden, die für welche Projekte gelten.

    Was zuvor ein aktives Projekt war, wird nun auf eine von drei verschiedenen Arten erfasst:

  • Das Startprojekt

    Sie können ein Projekt oder projekte auf der Eigenschaftenseite der Projektmappe angeben, die gestartet wird, wenn der Benutzer F5 drückt oder im Menü "Erstellen" die Option "Ausführen" auswählt. Dies funktioniert ähnlich wie das alte aktive Projekt im Sinne, dass der Name in Projektmappen-Explorer mit fett formatierter Schriftart angezeigt wird.

    Sie können das Startprojekt als Eigenschaft im Automatisierungsmodell abrufen, indem Sie aufrufen DTE.Solution.SolutionBuild.StartupProjects. In einem VSPackage rufen Sie die get_StartupProject Methoden auf get_StartupProject . IVsSolutionBuildManager steht als Dienst über QueryService SID_SVsSolutionBuildManager zur Verfügung. Weitere Informationen finden Sie unter Project Configuration Object and Solution Configuration.

  • Konfiguration des aktiven Lösungsbuilds

    Visual Studio verfügt über eine aktive Lösungskonfiguration, die im Automatisierungsmodell verfügbar ist, indem sie implementiert DTE.Solution.SolutionBuild.ActiveConfigurationwird. Eine Lösungskonfiguration ist eine Sammlung, die eine Projektkonfiguration für jedes Projekt in der Projektmappe enthält (jedes Projekt kann mehrere Konfigurationen haben, auf mehreren Plattformen mit unterschiedlichen Namen). Weitere Informationen zu den Eigenschaftenseiten der Lösung finden Sie unter "Lösungskonfiguration".

  • Projekt zurzeit ausgewählt

    Implementieren Sie die Methode zum Abrufen der GetCurrentSelection Projekthierarchie und des ausgewählten Projektelements oder der ausgewählten Elemente. Von DTE würden Sie die SelectedItems.SelectedItem.Project und SelectedItems.SelectedItem.ProjectItem die Methoden verwenden. Unter diesen Überschriften befindet sich Beispielcode in den zentralen Visual Studio-Dokumenten.

Siehe auch