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 anderen Visual Studio Ultimate-Benutzern in Form einer Visual Studio Integration Extension (VSIX) bereitstellen. Eine VSIX können Sie mithilfe eines VSIX-Projekts in Visual Studio erstellen.

Anforderungen

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.

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

Komponenten, für die kein Code erforderlich ist (beispielsweise benutzerdefinierte Toolboxelemente und benutzerdefinierte UML-Profile) können dem VSIX-Projekt direkt hinzugefügt werden, ohne dass separate Klassenbibliothekprojekte benötigt werden. Komponenten, für die Programmcode erforderlich ist, können viel leichter in einem separaten Klassenbibliothekprojekt definiert werden. Komponenten, die Code wie beispielsweise Gestenhandler, Menübefehle oder Überprüfungscode benötigen.

Erstellen eines Klassenbibliothekprojekts für Menübefehle, Gestenhandler oder Überprüfung

  1. Wählen Sie im Menü Datei die Optionsfolge Neu, Projekt aus.

  2. Wählen Sie unter Installierte Vorlagen die Option Visual C# oder Visual Basic aus, und wählen Sie anschließend Klassenbibliothek aus.

So erstellen Sie ein VSIX-Projekt

  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. Wählen Sie im Projektmappen-Explorer im Kontextmenü der Projektmappe die Option Hinzufügen und dann Neues Projekt aus.

    2. Erweitern Sie unter Installierte Vorlagen den Knoten Visual C# oder Visual Basic, und wählen Sie anschließend Erweiterungen aus. Wählen Sie in der mittleren Spalte VSIX Project.

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

    • Wählen Sie im Projektmappen-Explorer im Kontextmenü des VSIX-Projekts die Option Als Startprojekt festlegen aus.
  4. Öffnen Sie source.extension.vsixmanifest. Die Datei wird im Manifest-Editor geöffnet.

  5. Legen Sie auf der Registerkarte MetaData den Namen und die Beschreibungsfelder des VSIX fest.

  6. Auf der Registerkarte Ziele installieren wählen Sie Neu aus und legen die Visual Studio-Editionen Ultimate und Premium als Ziele fest.

  7. Fügen Sie Ihre Komponenten auf der Registerkarte Objekte der Visual Studio-Erweiterung hinzu.

    1. Wählen Sie Neu aus.

    2. Legen Sie diese Felder für eine Komponente mit Code im Dialogfeld Neues Objekt hinzufügen fest:

      Typ =

      Microsoft.VisualStudio.MefComponent

      Quelle =

      Ein Projekt in der aktuellen Projektmappe

      Projekt =

      Your class library project

      Einbetten in diesen Ordner =

      (empty)

      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. Sie können mehrere Handler in das gleiche Klassenbibliotheksprojekt einfügen. 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 Gestenhandlers 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

(Muss definiert werden)

Toolboxelement

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

(Muss definiert werden)

Ausführen einer Erweiterung während ihrer Entwicklung

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

  1. Wählen Sie im Menü Visual Studio Debuggen das Element Debuggen starten aus.

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

    • Alternativ können Sie auch Starten ohne Debugging auswählen. 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ück 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 aus, die den Programmnamen devenv hat.

Installieren und Deinstallieren einer Erweiterung

Führen Sie die folgenden Schritte aus, um Ihre Erweiterung in der Hauptinstanz von Visual Studio auszuführen, entweder auf dem eigenen Computer oder auf anderen Computern.

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

    1. Wählen Sie im Projektmappen-Explorer im Kontextmenü Ihres Projekts Ordner in Windows Explorer öffnen aus.

    2. Suchen Sie die Datei bin\*\YourProject.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 auf der Registerkarte Installationsziele von source.extension.vsixmanifest angegeben haben.
  3. Öffnen Sie auf dem Zielcomputer die Datei .vsix, indem Sie beispielsweise darauf doppelklicken.

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

  4. Starten Sie Visual Studio.

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\12.0\Extensions

Siehe auch

Konzepte

Gewusst wie: Definieren eines Profils zum Erweitern von UML

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