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 zu anderen entscheidenden Benutzern von Visual Studio in Form eines. auch verteilen. Visual Studio-Integrationserweiterung (VSIX) Sie können ein VSIX 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, die keinen Code, wie benutzerdefinierte Toolboxelemente und benutzerdefinierte UML-Profile), können dem VSIX-Projekt direkt hinzugefügt werden, ohne dass separate Klassenbibliotheksprojekte zu verwenden.Komponenten, die Programmcode erforderlich ist, können leichter in einem separaten Klassenbibliotheksprojekt definiert.Komponenten, die Codeeinschliessungsgestenhandler, Menübefehle und Validierungscode erfordern.

So fügen Sie ein Klassenbibliotheksprojekt für Menübefehle, Gestenhandler oder Validierung erstellen

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

  2. Die Installierte Vorlagen wählen ausgewähltes Visual C# oder Visual Basic, dann 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. In Projektmappen-Explorer im Kontextmenü der Projektmappe, wählen Sie Hinzufügen, Neues Projekt aus.

    2. Erweitern Sie unter Installierte VorlagenVisual C# oder Visual Basic, wählen Sie Erweiterungen aus.In der mittleren Spalte wählen Sie VSIX-Projekt aus.

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

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

  5. Klicken Sie auf der Registerkarte Metadaten legen Sie den Namen und die Beschreibungsfelder des VSIX fest.

  6. Klicken Sie auf der Registerkarte Ziele installieren wählen Sie Neu auswählen und die entscheidenden und eines Visual Studio-Versionen fest.

  7. Klicken Sie auf der Registerkarte Objekte fügen Sie die Komponenten der Visual Studio-Erweiterung hinzu.

    1. Wählen Sie Neu aus.

    2. Für eine Komponente mit Code, legen Sie diese Felder in Dialogfeld Neue Anlage hinzufügen fest:

      Typ =

      Microsoft.VisualStudio.MefComponent

      Quelle =

      Ein Projekt in der aktuellen Projektmappe

      Projekt =

      das Klassenbibliotheksprojekt

      In diesem Ordner einbetten =

      (leer)

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

Definiert (werden)

Toolboxelement

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

Definiert (werden)

Ausführen einer Erweiterung während ihrer Entwicklung

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

  1. Klicken Sie im Menü Visual StudioDebuggen wählen Sie Debuggen starten aus.

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

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

    Die Erweiterung wird geladen und ausgeführt.

  3. Wenn Sie in Starten ohne Debugging 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 aus, das dem Programmnamen devenv verfügt.

Installieren und Deinstallieren einer Erweiterung

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

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

    1. In Projektmappen-Explorer im Kontextmenü des Projekts und dann Ordner in Windows Explorer öffnen aus.

    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 eine der Editionen von Visual Studio verfügen, die Sie auf der Registerkarte Installations-Ziele von source.extension.vsixmanifest angegeben haben.
  3. Klicken Sie auf dem Zielcomputer Sie die .vsix Datei, indem Sie beispielsweise darauf doppelklicken.

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

  4. Anfangs- oder Neustartvisual 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\11.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