Der Codeplex PipelineBuilder für VS2010 & .NET 4

Im Zuge meiner Diplomarbeit hab ich mich ein wenig über die dynamische Erweiterung von Programmen schlau gemacht. Dabei bin ich auf das „Managed Add-In Framework“ (kurz MAF) gestoßen. Mit MAF ist es möglich Add-Ins dynamisch zu laden und auch wieder zu entladen. Weitere Infos zum MAF findet ihr hier: MAF auf MSDN

Das MAF besteht aus einer „Pipeline“, welche das Add-In mit dem Host verbindet. Die Pipeline hat folgende Struktur:

MAF Pipeline
Quelle: MSDN

Wie man hier gut erkennen kann, besteht die Pipeline aus insgesamt sieben verschiedenen Teilen. Hierbei kann man aber eigentlich den Host und das Add-In noch abziehen. So kommen wir dann auf insgesamt fünf verschiedene Teile.
Da die Pipeline in erster Linie immer einer festen Struktur folgt, kann man sich durch ein Tool die Arbeit etwas leichter machen und sich die Pipeline davon erstellen lassen. Es muss lediglich der „Vertrag“ (engl. Contract) erstellt werden, welcher sich in der Mitte befindet.

Das Tool nennt sich PipelineBuilder und ist hier erhältlich:  PipelineBuilder

Sollte man jedoch Visual Studio 2010 mit dem .NET Framework 4 verwenden, gibt es jedoch ein kleines Problem, welches aber leicht und schnell zu beheben ist. Das Problem, ok Problem kann man das eigentlich auch nicht direkt nennen, besteht darin, das der PipelineBuilder für Visual Studio 2008 und für das .NET Framework 3.5 entwickelt wurde. Daher müssen, bevor man den PipelineBuilder nutzen kann, einige einstellungen gemacht werden. Wie das geht, werd ich hier mal beschreiben. (Für den Rest vom Text, klickt auf Continue reading »)

Dann mal los!

Als erstes ladet ihr euch den PipelineBuilder von der Codeplex Seite herunter. Nehmt dort den Installer! (Link findet ihr etwas weiter oben!) Wenn ihr den PipelineBuilder heruntergeladen habt, extrahiert ihr als erstes die ZIP Datei. Danach könnt ihr den PipelineBuilder mit Hilfe der „setup.exe“ installieren. Standardmäßig (ok bei Win 7 mit 64-Bit Architektur) wird der PipelineBuilder in folgenden Ordner installiert:

C:\Program Files(x86)\Microsoft\Visual Studio Pipeline Builder\…

Mit dem Ordner kann Visual Studio 2010 jedoch nichts anfangen, also müsst ihr die gesamten Dateien aus dem genannten Ordner in folgenden Ordner kopieren:

C:\Users\NAME\Documents\Visual Studio 2010\Addins\…

Sollte bei euch der Ordner „Addins“ nicht vorhanden sein, könnt ihr diesen einfach erstellen. Achtet hier aber auf die genau Schreibweise!
So wenn ihr die Dateien in den neuen Ordner kopiert habt, muss noch eine Datei angepasst werden, und zwar die „VSPipelineBuilder.AddIn“, da diese Datei zurzeit noch auf Visual Studio 2008 verweist. Ihr könnt die Datei mit Notepad oder einem ähnlichem Textprogramm öffnen. Ich kann hier besonders Notepad++ empfehlen!

Wenn ihr die Datei geöffnet habt, müsst ihr bei dem Tag <Version> „9.0“ durch „10.0“ ersetzen.

 

Wenn ihr die Datei geändert habt, könnt ihr diese einfach Speichern. Achtet darauf, das ihr den Dateinamen nicht verändert!!!

So wenn ihr jetzt Visual Studio 2010 startet, solltet ihr unter „Extras“ (engl. Version von VS „Tools“) dein Eintrag „PipelineBuilder“ haben.

So dann wollen wir den PipelineBuilder doch mal testen. Dazu erstellt als erstes eine neue „Projektmappe“ (engl. „Solution“). Wählt als Projekt eine „Klassenbibliothek“ (engl. „Class Library“). Die Projektmappe könnt ihr nennen wie ihr wollt. Das Projekt sollte jedoch „Contract“ heißen. Um das ganze noch etwas übersichtlicher zu gestalten, nennt die „Class1.cs“ Datei in „Contract.cs“ um. Dadurch könnt ihr die später leichter wiederfinden.

So wenn ihr das Projekt erstellt habt, müsst ihr den „Ausgabepfad“ ändern. Dazu erstellt ihr im Explorer, in dem Ordner wo ihr die Projektmappe gespeichert habt, einen Ordner und nennt diesen „Output“. In dem „Output“ Ordner erstellt ihr dann einen Ordner mit dem Namen „Contracts“. Ihr sollten dann folgenden Verzeichnisstruktur haben: …\Projektmappe\Output\Contracts\

Wenn ihr die Ordner erstellt habt, könnt ihr den Ausgabepfad in „..\Output\Contracts“ ändern. Das ganze sollte dann so aussehen:

Zum vergrößern, klicken

So wenn ihr das Projekt erstellt habt, müsst ihr den „Ausgabepfad“ ändern. Dazu erstellt ihr im Explorer, in dem Ordner wo ihr die Projektmappe gespeichert habt, einen Ordner und nennt diesen „Output“. In dem „Output“ Ordner erstellt ihr dann einen Ordner mit dem Namen „Contracts“. Ihr sollten dann folgenden Verzeichnisstruktur haben: …\Projektmappe\Output\Contracts\

Wenn ihr die Ordner erstellt habt, könnt ihr den Ausgabepfad in „..\Output\Contracts“ ändern.

So, wenn der Ausgabepfad geändert ist, können wir die Contract.cs Datei mit Leben füllen. Ich nehm einfach mal ein kleines Beispiel Programm:
Ah, bevor ich es vergess, ihr müsst zu eurem Projekt noch ein Verweis auf die Datei „System.AddIn“ und „System.AddIn.Contract“ hinzufügen!!!

So, wenn ihr die Verweise gesetzt habt, den Ausgabepfad geändert habt könnt ihr die Projektmappe erstellen (F6). Wenn ihr das Projekt erfolgreich erstellt habt, kommt der PipelineBuilder zum einsatz. Dazu klickt einfach unter Extras auf den PipelineBuilder. Wenn ihr das gemacht habt, erscheint ein Dialog mit den Konfigurationen für den PipelineBuilder. Hier könnt ihr die Einstellungen alle beibehalten und auf OK klicken!

Der PipelineBuilder generiert jetzt automatisch den Rest der Pipeline. Wenn der PipelineBuilder ohne Fehler durchgelaufen ist, sollte euere Projektmappe so aussehen:

Zum Vergößern, klicken

So jetzt kommt noch ein weiteres mal die Problematik mit der .NET Framework 3.5 Version des PipelineBuilders zu tragen, und zwar muss noch das Zielframework, sowie die „Namen“ der einzelnen Projekte verändert werden. Dazu öffnet die Einstellungen der einzelnen Projekte. Direkt auf der ersten Seite unter „Anwendung“ findet ihr einmal den „Assemblyname“ und den „Standardnamespace“. Bei beiden steht zurzeit noch „Template“. Diesen Namen müsst ihr durch den Projektnamen ersetzen. Also, wenn ihr z.B. grad die Einstellungen für die „HostView“ geöffnet habt, tragt ihr bei dem „Assemblyname“ und dem „Standardnamespace“ auch „HostView“ ein.

Weiterhin muss das Zielframework auch noch geändert werden. Dazu wählt  ihr unter „Zielframework“ einfach „.NET Framework 4.0“ aus. Wenn ihr das ausgewählt habt, erscheint eine Meldung, mit dem Hinweis, dass das Projekt einmal geschlossen werden muss und dann wieder geöffnet wird. Dazu bekommt bekommt ihr noch die Meldung, das ihr eventuell Manuell noch was ändern müsst. Und das ist auch der Fall 🙂

Und zwar Verweisen die generierten Projekte alle noch auf zwei alte Assemblies. Daher müsst ihr bei den einzelnen Projekten, eben die „veralteten“ Assemblies löschen und durch die „neue“ Version von .NET Framework 4.0 ersetzen. Bei den vier erzeugten Projekte, sollte der Verweis auf die Assemblies „System“ und „System.AddIn“ fehlerhaft sein.

Wenn ihr die beiden Fehlerhaften Assemblies ersetzt habt, sollte soweit alles in Butter sein!

Da das hier ja in erster Linie eine Anleitung für den PipelineBuilder ist, werd ich nicht weiter darauf eingehen, wie man mit MAF arbeitet. Dazu kann ich euch aber folgende Links empfehlen:

In diesem Sinne…
…viel Spaß beim basteln 🙂

 

 

Autor: Paul

Ich bin ich und hin und wieder auch mal nich! :)

5 Gedanken zu „Der Codeplex PipelineBuilder für VS2010 & .NET 4“

  1. Genau die Beschreibung, die ich gesucht habe. Danke!
    Eine klein Ergänzung hätte ich noch hinsichtlich der Anpassung des „Zielframeworks“ und der Anpassung der Verweise auf die Assemblies „System“ und „System.AddIn“:
    Damit die Änderungen nicht bei jedem Projekt manuell durchgeführt werden müssen, können die notwendigen Änderungen auch in der Datei „Template.csproj“, welche sich im Installatinsverzeichnis des PipelineBuilder bzw. im AddIn-Verzeichnis von VS 2010 befindet, durchgeführt werden.

    Die folgenden Zeilen

    v3.5
    <Reference Include="System, Version=2.0.0.0, …
    <Reference Include="System.AddIn, Version=3.5.0.0, …

    ändern in

    v4.0
    <Reference Include="System, Version=4.0.0.0, …
    <Reference Include="System.AddIn, Version=4.0.0.0, …

Schreibe einen Kommentar