Freigeben über


Gewusst wie: Definieren und Installieren einer Modellierungserweiterung

In Visual Studio Ultimate können Sie Erweiterungen für Modellierungsdiagramme definieren. Auf diese Weise können Sie die Diagramme und Modelle Ihren eigenen Anforderungen anpassen. Sie können z. B. Menübefehle, UML-Profile, Validierungseinschränkungen und Toolboxelemente definieren. In einer Erweiterung können mehrere Komponenten definiert werden. Sie können diese Erweiterungen auch in Form einer Visual Studio-Integrationserweiterung (VSIX) an andere Visual Studio Ultimate-Benutzer verteilen. Eine solche Erweiterung (VSIX) kann mithilfe eines VSIX-Projekts in Visual Studio erstellt werden.

Sie müssen Visual Studio SDK installiert haben.

Voraussetzungen

Erstellen einer Modellierungserweiterungs-Projektmappe

Zum Definieren einer Modellierungserweiterung müssen Sie eine Projektmappe erstellen, die die folgenden Projekte enthält:

  • Ein VSIX (Visual Studio Integration Extension)-Projekt. Dadurch wird eine Datei generiert, die als Installationsprogramm für die Komponenten der Erweiterung fungiert. Erweitern Sie im Dialogfeld Neues Projekt den Knoten Visual C# oder Visual Basic, und klicken Sie dann auf Erweiterungen. Klicken Sie in der mittleren Spalte auf VSIX Project.

  • Ein Klassenbibliotheksprojekt, das für Komponenten benötigt wird, die Programmcode enthalten.

Wenn Sie eine Erweiterung mit mehreren Komponenten erstellen möchten, können Sie diese in einer einzigen Projektmappe entwickeln. Sie benötigen lediglich ein VSIX-Projekt, und die Komponenten werden der VSIX-Definition als Inhalt hinzugefügt.

Komponenten, für die kein Code erforderlich ist (z. B. benutzerdefinierte Toolboxelemente und benutzerdefinierte UML-Profile) können dem VSIX-Projekt direkt hinzugefügt werden, ohne dass separate Projekte benötigt werden. Komponenten, für die Programmcode erforderlich ist (z. B. Menübefehle), können leichter in einem separaten Projekt definiert werden.

So richten Sie ein VSIX-Projekt ein

  1. Wenn Sie eine Komponente mit Code erstellen, ist es am einfachsten, zuerst das Klassenbibliotheksprojekt zu erstellen. Diesem Projekt wird der Code hinzugefügt.

  2. Erstellen eines VSIX-Projekts

    1. Klicken Sie im Projektmappen-Explorer mit der rechten Maustaste auf die Projektmappe, zeigen Sie auf Hinzufügen, und klicken Sie anschließend auf Neues Projekt.

    2. Erweitern Sie unter Installierte Vorlagen den Knoten Visual C# oder Visual Basic, und klicken Sie anschließend auf Erweiterungen. Klicken Sie in der mittleren Spalte auf VSIX Project.

  3. Legen Sie das VSIX-Projekt als Startprojekt der Projektmappe fest.

    • Klicken Sie im Projektmappen-Explorer mit der rechten Maustaste auf das VSIX-Projekt, und klicken Sie anschließend auf Als Startprojekt festlegen.
  4. Öffnen Sie source.extension.vsixmanifest. Die Datei wird im Manifest-Editor geöffnet.

  5. Legen Sie den Namen und die Beschreibungsfelder des VSIX fest.

  6. Klicken Sie auf Editionen auswählen, und wählen Sie die Visual Studio-Editionen aus, unter denen die Erweiterung ausgeführt werden soll.

  7. Fügen Sie der Liste Inhalt die Komponenten hinzu.

    1. Klicken Sie auf Inhalt hinzufügen.

    2. Für eine Komponente mit Code:

      Wählen Sie für Inhaltstyp auswählen die Option MEF-Komponente aus.

      Klicken Sie in Quelle auswählen auf Projekt, und wählen Sie den Namen des Klassenbibliotheksprojekts aus.

      Informationen zu anderen Komponententypen finden Sie unter den Links im nächsten Abschnitt.

Entwickeln der Komponente

Sie müssen für jede Komponente (z. B. für einen Menübefehl oder Gestenhandler) einen separaten Handler definieren. In der folgenden Tabelle erhalten Sie eine Übersicht über die verschiedenen Arten von Handlern.

Erweiterungstyp

Thema

Typische Deklaration der einzelnen Komponenten

Menübefehl

Gewusst wie: Definieren eines Menübefehls in einem Modellierungsdiagramm

[ClassDesignerExtension]

// or other diagram types

[Export(typeof(ICommandExtension))]

public class MyCommand : ICommandExtension

{...

Drag & Drop oder Doppelklick

Gewusst wie: Definieren eines Handlers für Ablagevorgänge und Doppelklicks in einem Modellierungsdiagramm

[ClassDesignerExtension]

// or other diagram types

[Export(typeof(IGestureExtension))]

public class MyGesture : IGestureExtension

{...

Validierungseinschränkung

Gewusst wie: Definieren von Validierungseinschränkungen für UML-Modelle

[Export(typeof( System.Action<ValidationContext, object>))]

[ValidationMethod(ValidationCategories.Save

| ValidationCategories.Menu)]

public void ValidateSomething

(ValidationContext context, IClassifier elementToValidate)

{...}

Arbeitsaufgabenlink-Ereignishandler

Gewusst wie: Definieren eines Linkhandlers für Arbeitsaufgaben

[Export(typeof(ILinkedWorkItemExtension))]

public class MyWorkItemEventHandler : ILinkedWorkItemExtension

{...

UML-Profil

Gewusst wie: Definieren eines Profils zum Erweitern von UML

Nicht definiert mit Programmcode. Definieren Sie den Komponententyp stattdessen wie folgt in source.extension.vsixmanifest.

Komponententyp = Benutzerdefinierte Erweiterung

Typ = Microsoft.VisualStudio.UmlProfile

Toolboxelement

Gewusst wie: Definieren eines benutzerdefinierten Elements für die Modellerstellungstoolbox

Nicht definiert mit Programmcode. Definieren Sie den Komponententyp stattdessen wie folgt in source.extension.vsixmanifest.

Komponententyp = Benutzerdefinierte Erweiterung

Typ = Microsoft.VisualStudio.ArchitectureTools.CustomToolboxItems

Ausführen einer Erweiterung während ihrer Entwicklung

So führen Sie eine Erweiterung während ihrer Entwicklung aus

  1. Klicken Sie in Visual Studio im Menü Debuggen auf Debugging starten.

    Das Projekt wird erstellt, und eine neue Instanz von Visual Studio wird im Testmodus gestartet.

    • Alternativ können Sie auf Starten ohne Debugging klicken. Dadurch wird das Programm schneller gestartet.
  2. Erstellen oder öffnen Sie in der experimentellen Instanz von Visual Studio ein Modellierungsprojekt, und erstellen oder öffnen Sie ein Diagramm.

    Die Erweiterung wird geladen und ausgeführt.

  3. Wenn Sie Starten ohne Debugging ausgewählt haben, den Debugger aber verwenden möchten, wechseln Sie zur Hauptinstanz von Visual Studio. Klicken Sie im Menü Debuggen auf An den Prozess anhängen. Wählen Sie im Dialogfeld die experimentelle Instanz von Visual Studio mit dem Programmnamen devenv aus.

Um die Erweiterung in der Hauptinstanz von Visual Studio auszuführen, befolgen Sie die Schritte unter Installieren und Deinstallieren einer Erweiterung.

Installieren und Deinstallieren einer Erweiterung

Sie können eine Visual Studio-Erweiterung sowohl auf Ihrem eigenen Computer als auch auf anderen Computern installieren.

So installieren Sie eine Erweiterung

  1. Suchen Sie auf dem Computer nach der .vsix-Datei, die vom Erweiterungsprojekt erstellt wurde.

    1. Klicken Sie im Projektmappen-Explorer mit der rechten Maustaste auf das Projekt, und klicken Sie dann auf Ordner in Windows Explorer öffnen.

    2. Suchen Sie nach der Datei bin\*\IhrProjekt.vsix.

  2. Kopieren Sie die .vsix-Datei auf den Zielcomputer, auf dem Sie die Erweiterung installieren möchten. Dies kann Ihr eigener Computer oder ein anderer Computer sein.

    • Der Zielcomputer muss über eine der Editionen von Visual Studio verfügen, die Sie in source.extension.vsixmanifest angegeben haben.
  3. Doppelklicken Sie auf dem Zielcomputer auf die .vsix-Datei.

    Installer für Visual Studio-Erweiterungen wird geöffnet, und die Erweiterung wird installiert.

  4. Starten Sie Visual Studio, bzw. starten Sie die Anwendung neu.

So deinstallieren Sie eine Erweiterung

  1. Klicken Sie im Menü Extras auf Erweiterungs-Manager.

  2. Erweitern Sie Installierte Erweiterungen.

  3. Wählen Sie die Erweiterung aus, und klicken Sie dann auf Deinstallieren.

In seltenen Fällen kann es vorkommen, dass eine fehlerhafte Erweiterung nicht geladen und ein Bericht im Fehlerfenster erstellt wird, aber im Erweiterungs-Manager keine Informationen angezeigt werden. In diesem Fall können Sie die Erweiterung löschen, indem Sie die Datei von folgendem für % LocalAppData% üblichen Speicherort entfernen: DriveName: \Users\UserName\AppData\Local:

%LocalAppData%\Microsoft\VisualStudio\10.0\Extensions

Siehe auch

Konzepte

Gewusst wie: Definieren eines Profils zum Erweitern von UML

Weitere Ressourcen

Gewusst wie: Definieren eines benutzerdefinierten Elements für die Modellerstellungstoolbox

Gewusst wie: Definieren von Validierungseinschränkungen für UML-Modelle

Gewusst wie: Definieren eines Menübefehls in einem Modellierungsdiagramm