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.
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
IVsPropertyPage
nicht 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, wennISpecifyPropertyPages
sie aus den Browseobjekt- und Konfigurationseigenschaften des Elements implementiert werden, wenn Sie das Konfigurationsobjekt implementierenISpecifyPropertyPages
(das Objekt implementiertIVsCfg
,IVsProjectCfg
und 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
IVsPropertyPage
bestimmt.IDispatch
Objekte für Elemente im Auswahlcontainer, die Eigenschaften enthalten, die auf Eigenschaftenseiten angezeigt werden sollen, implementierenISpecifyPropertyPages
, um eine Liste der Klassen-IDs auflisten zu können. Die Klassen-IDs werden als VariablenISpecifyPropertyPages
übergeben und zum Instanziieren der Eigenschaftenseiten verwendet. Die Liste der Klassen-IDs wird auch übergeben, umIVsPropertyPage
die Struktur auf der linken Seite des Dialogfelds zu erstellen. Die Eigenschaftenseiten übergeben dann Informationen zurück an dasIDispatch
Objekt, das die Informationen für jede Seite implementiertISpecifyPropertyPages
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.
Dialogfeld 'Eigenschaftenseiten' mit Eigenschaftenraster
Die Schnittstellen
IVSMDPropertyBrowser
undIVSMDPropertyGrid
(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 überQueryService
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.ActiveConfiguration
wird. 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
undSelectedItems.SelectedItem.ProjectItem
die Methoden verwenden. Unter diesen Überschriften befindet sich Beispielcode in den zentralen Visual Studio-Dokumenten.