Erstellen eines Pakets in Visual Studio
Last updated
Last updated
Wenn Sie Assemblys entwickeln, die als Paket für Dynamo publiziert werden sollen, kann das Projekt so konfiguriert werden, dass alle erforderlichen Objekte gruppiert und in einer paketkompatiblen Verzeichnisstruktur abgelegt werden. Dadurch kann das Projekt schnell als Paket getestet werden und die Benutzererfahrung simuliert werden.
Es gibt zwei Methoden zum Erstellen eines Pakets in Visual Studio:
Hinzufügen von Postbuildereignissen über das Dialogfeld Projekteinstellungen, die XCopy- oder Python-Skripts zum Kopieren der erforderlichen Dateien verwenden
Verwenden des Build-Ziels AfterBuild in der .csproj
-Datei, um Aufgaben zum Kopieren von Dateien und Verzeichnissen zu erstellen
AfterBuild ist die bevorzugte Methode für diese Operationstypen (und die in diesem Handbuch beschriebenen), da sie nicht auf dem Kopieren von Dateien beruht, die möglicherweise nicht auf dem Build-Computer verfügbar sind.
Richten Sie die Verzeichnisstruktur im Repository so ein, dass die Quelldateien von den Paketdateien getrennt sind. Platzieren Sie das Visual Studio-Projekt und alle zugehörigen Dateien in einem neuen src
-Ordner, und arbeiten Sie dabei mit der Fallstudie CustomNodeModel. Sie speichern alle vom Projekt generierten Pakete in diesem Ordner. Die Ordnerstruktur sollte nun wie folgt aussehen:
Verschieben Sie die Projektdateien in den neuen
src
-Ordner.
Nachdem sich die Quelldateien in einem separaten Ordner befinden, fügen Sie der Datei CustomNodeModel.csproj
in Visual Studio ein AfterBuild
-Ziel hinzu. Dadurch sollten die erforderlichen Dateien in einen neuen Paketordner kopiert werden. Öffnen Sie die Datei CustomNodeModel.csproj
in einem Texteditor (wir haben Atom verwendet), und platzieren Sie das Build-Ziel vor dem schließenden </Project>
-Tag. Dieses AfterBuild-Ziel kopiert alle DLL-, PBD-, XML- und CONFIG-Dateien in einen neuen bin-Ordner und erstellt einen dyf-Ordner sowie zusätzliche Ordner.
Wir müssen sicherstellen, dass das Ziel der Datei
CustomNodeModel.csproj
hinzugefügt wurde (nicht einer anderen Projektdatei) und dass das Projekt keine vorhandenen Postbuild-Einstellungen aufweist.
Platzieren Sie das AfterBuild-Ziel vor dem
</Project>
-End-Tag.
Im Abschnitt <ItemGroup>
sind eine Reihe von Variablen definiert, die bestimmte Dateitypen darstellen. Die Variable Dll
stellt beispielsweise alle Dateien im Ausgabeverzeichnis mit der Erweiterung .dll
dar.
Die Aufgabe Copy
besteht darin, alle .dll
-Dateien in ein Verzeichnis zu kopieren, insbesondere den Paketordner, in dem die Erstellung erfolgt.
Dynamo-Pakete verfügen in der Regel über einen dyf
- und einen extra
-Ordner für benutzerdefinierte Dynamo-Blöcke und andere Objekte, z. B. Bilder. Um diese Ordner zu erstellen, müssen wir eine MakeDir
-Aufgabe verwenden. Diese Aufgabe erstellt einen Ordner, wenn er noch nicht vorhanden ist. Sie können diesem Ordner manuell Dateien hinzufügen.
Wenn Sie das Projekt erstellen, sollte der Projektordner jetzt einen packages
-Ordner neben dem zuvor erstellten src
-Ordner enthalten. Im packages
-Verzeichnis befindet sich ein Ordner, der alle für das Paket erforderlichen Elemente enthält. Außerdem müssen wir die Datei pkg.json
in den Paketordner kopieren, damit Dynamo erkennt, dass das Paket geladen werden soll.
Der neue Paketordner, den das AfterBuild-Ziel erstellt hat.
Der vorhandene src-Ordner mit dem Projekt.
Die Ordner
dyf
undextra
, die aus dem AfterBuild-Ziel erstellt wurden.Kopieren Sie die Datei
pkg.json
manuell.
Jetzt können Sie das Paket mithilfe des Paket-Managers von Dynamo publizieren oder es direkt in das Paketverzeichnis von Dynamo kopieren: <user>\AppData\Roaming\Dynamo\1.3\packages
.