Plug-in-Projekt in Visual Studio einrichten

Dieser Abschnitt befasst sich mit der Einrichtung von Visual-Studio-2022-Projekten für die Implementierung eigener Plug-ins und mit den Möglichkeiten für das Debuggen.

Einrichten eines Projekts in Visual Studio

Zusammenhang

Für die Implementierung eigener Plug-ins für Innovator richten Sie ein Projekt in Visual Studio 2022 ein.

So gehen Sie vor

  1. Starten Sie Visual Studio 2022.

  2. Erzeugen Sie ein neues Projekt:

    • Verwenden Sie die C#-Vorlage WPF Klassenbibliothek.

    • Empfehlenswert ist die Vergabe des Projektnamens nach dem Muster Firmenname.Innovator.Plugin.Plug-in-Name.

    • Wählen Sie als Speicherort ein lokales Verzeichnis auf Ihrem Rechner, da Windows auf einem Netzlaufwerk nur eingeschränkte Rechte gewährt, was bei der Plug-in-Entwicklung zu Problemen führen kann.

    • Lassen Sie ein Projektmappenverzeichnis erstellen und wählen Sie einen Namen für die Projektmappe, beispielsweise MyPlugins.

    Nach Projekterzeugung sollte eine Struktur ähnlich jener der Plug-in-Samples entstanden sein: Die Projektmappe (MyPlugins.sln) liegt im Verzeichnis für die Plug-ins und jedes Plug-in-Projekt in einem eigenen Unterverzeichnis.

  3. Öffnen Sie die Projekteigenschaften und wählen Sie als Zielframework .NET 8.0.

  4. Legen Sie auf Ihrer lokalen Platte einen Ordner mit beliebigem Namen an (z.B. c:\InoPlugins), der als Wurzel für die Ablage übersetzter Klassenbibliotheken dient. Jedes Plug-in muss in einem eigenen Verzeichnis unterhalb dieser Wurzel liegen.

    Hinweis

    Das Verzeichnis muss aus technischen Gründen so heißen wie die Klassenbibliothek.

    Setzen Sie in den Projekteigenschaften im Register Build den Ausgabepfad. Stimmen die Namen von Projekt und Klassenbibliothek überein, dann kann die Variable MSBuildProjectName bei der Angabe verwendet werden, im Beispiel also C:\InoPlugins\$(MSBuildProjectName).

    Standardmäßig wird beim Übersetzen ein Verzeichnis net6.0-windows unterhalb des festgelegten Ausgabeverzeichnisses erzeugt und dort die übersetzte Klassenbibliothek abgelegt. Um dieses zu vermeiden, ist die Projektdatei wie folgt zu erweitern:

  5. Setzen Sie im Administrationsprogramm in der Backstage-Ansicht Umgebung die Variable PLUGINS_PATH auf das angelegte Wurzelverzeichnis. Der Modelleditor von Innovator wird dann Plug-ins aus diesem Verzeichnis laden.

  6. Setzen Sie in den Projekteigenschaften im Register Debuggen die Einstellung Starten auf Ausführbare Dateiund das Startprogramm auf Innovator.exe im Verzeichnis mit den installierten Innovator-Programmen.

  7. Selektieren Sie im Toolfenster Projektmappen-Explorer den Knoten Abhängigkeiten und führen Sie über das Kontextmenü den Befehl COM-Verweis hinzufügen aus. Über die Schaltfläche Durchsuchen können Sie einen Dialog zum Referenzieren von Assemblys öffnen. Wechseln Sie in das Verzeichnis mit den installierten Innovator-Programmen und wählen Sie dort:

    • Innovator .NET API
      Innovator ApplicationFramework DLL
      Innovator Windows DLL
      Innovator Util DLL

    • Actipro Ribbon (for Wpf)
      Actipro Shared (for Wpf)

    Achtung

    Setzen Sie in den Eigenschaften dieser Verweise das Merkmal Lokale Kopie auf Nein. Ansonsten wird die Innovator-Oberfläche mit diesem Plug-in nicht starten.

  8. Verwenden Sie Class1.cs als die Klasse, die IApplicationComponent realisiert und benennen Sie sie dementsprechend um, z.B. MyPluginComponent.

  9. Erweitern Sie die Klassendefinition um IApplicationComponent als zu realisierende Schnittstelle:

    public class MyPluginComponent : IApplicationComponent

  10. Lassen Sie von Visual Studio die Schnittstelle implementieren.

    Damit ist der Rahmen für ein Innovator Plug-in vollständig und das Plug-in kann übersetzt werden.

Wie Sie weiter vorgehen

Anschließend kann in Visual Studio das Plug-in direkt im Debugger gestartet werden. Da Innovator.exe als Startprogramm bei den Debug-Einstellungen eingetragen wurde, startet der Modelleditor und lädt zum Zeitpunkt der Anmeldung in einem Modell das Plug-in, das dann im Debugger läuft.

Setzen Sie einen Haltepunkt auf die Methode RequestHandler und starten Sie das Debugging. Der Modelleditor sollte sich dann öffnen. Wenn Sie sich dort in einem Modell anmelden und der Debugger am gesetzten Haltepunkt hält, dann wurde das Plug-in korrekt aufgesetzt.

Achtung

Soll ein Plug-in später mit einer höheren Innovator-Version betrieben werden, dann sind die Referenzen auf Innovator- und evtl. ActiPro-Bibliotheken zu aktualisieren und das Plug-in-Projekt zu übersetzen.