Erstellen eines Multi-Target-Pakets für Ihr Rhino-Plug-in

Der Paketmanager wurde in Rhino 7 eingeführt. Er erleichtert das Entdecken, Installieren und Verwalten von Rhino-Plug-ins aus Rhino heraus. Diese Anleitung beschreibt, wie man ein Paket aus einem Rhino-Plug-in erstellt, das auf dem Paketserver veröffentlicht werden kann.

Anmerkung
Der Paketmanager ist plattformübergreifend. Die folgenden Beispiele sind für Windows. Für Mac ersetzen Sie den Pfad zum Yak CLI-Tool durch "/Applications/Rhino 8.app/Contents/Resources/bin/yak".

Nehmen wir zunächst an, Sie haben ein Build-Verzeichnis auf Ihrem Computer, das alle Dateien enthält, die Sie in Ihrem Multi-Target-Paket verteilen möchten. Etwa wie unten.

C:\Benutzer\Bozo\dist
├───net48                            
│   │   icon.png                     
│   │   Tamarin.rhp                  
│   └───misc                         
│           License.txt              
│           README.md                
└───net7.0                           
    │   icon.png                     
    │   Tamarin.rhp                  
    └───misc                         
            License.txt              
            README.md                
Anmerkung
Dies ist nur ein Beispiel. Die einzigen Dateien, die von Bedeutung sind, sind Tamarin.rhp und icon.png (auf das Symbol werden wir später in der Datei manifest.yml verweisen).

Wir werden das Yak CLI Tool verwenden, um das Paket zu erstellen, öffnen Sie also eine Befehls-Eingabeaufforderung und navigieren Sie zu dem oben genannten Verzeichnis.

cd C:\Benutzer\Bozo\dist

Jetzt brauchen wir eine Datei manifest.yml! Sie können leicht Ihre eigene erstellen, indem Sie den Leitfaden der Manifest-Referenzen studieren. Alternativ können Sie den Befehl spec verwenden. um eine Skelettdatei zu erzeugen. Wir werden hier Letzteres tun.

> "C:\Programne\Rhino 8\System\Yak.exe" spec

Inspecting content: Tamarin.rhp

---
name: tamarin
version: 1.0.0
authors:
- Park Ranger
description: An example RhinoCommon plug-in
url: https://example.com


Saved to C:\Benutzer\Bozo\dist\manifest.yml

Der Befehl spec sieht sich das aktuelle Verzeichnis an und wird, falls vorhanden, nützliche Informationen aus der Baugruppe .rhp zu gewinnen versuchen und daraus eine mit Name, Version, Beschreibung usw. vorausgefüllte manifest.yml erstellen.

Wenn Sie diese Informationen noch nicht hinzugefügt haben, werden Platzhalter verwendet.

Der RhinoCommon Plug-in-Inspektor extrahiert die von Ihnen eingestellten Baugruppenattribute, wenn Sie Ihr Plug-in erstellen. Das Attribut AssemblyInformationalVersion wird verwendet, um das Versionsfeld zu füllen, da dieses Attribut nicht an die vierstellige Microsoft-Versionsangabe gebunden ist und einen SemVer-kompatiblen Versionsstring enthalten kann. Attribut AssemblyVersion wird als Ersatz verwendet.

Anmerkung
Der Befehl spec ist nützlich für die Erzeugung der manifest.yml-Datei zu Beginn. Wenn Sie eine haben, bewahren Sie sie zusammen mit Ihrem Projekt auf und aktualisieren Sie sie bei jeder Veröffentlichung.

Als nächstes öffnen Sie die Manifestdatei mit Ihrem bevorzugten Editor und füllen Sie die Lücken aus.

Danach sollten Sie etwas haben, das in etwa so aussieht…

---
name: tamarin
version: 1.0.0
authors:
- Park Ranger
description: >
  This plug-in does something. I'm not really sure exactly what it's supposed to
  do, but it does it better than any other plug-in.  
url: https://example.com
icon: icon.png
keywords:
- something

Jetzt, da wir eine Manifestdatei haben, können wir das Paket erstellen!

> "C:\Programme\Rhino 8\System\Yak.exe" build

Building package from contents of C:\Benutzer\Bozo\dist

Found manifest.yml for package: tamarin (1.0.0)
Inspecting content: Tamarin.rhp
Creating tamarin-1.0.0-rh8_0-any.yak

---
name: tamarin
version: 1.0.0
authors:
- Will Pearson
description: >
  This plug-in does something. I'm not really sure exactly what it's supposed to
  do, but it does it better than any other plug-in.
url: https://example.com
keywords:
- something
- guid:c9beedb9-07ec-4974-a0a2-44670ddb17e4

C:\Benutzer\Bozo\dist\tamarin-1.0.0-rh8_0-any.yak
├── manifest.yml
├── net48/
   ├── Tamarin.dll
   ├── Tamarin.rhp
   ├── icon.png
   └── misc/
       ├── License.txt
       └── README.md
└── net7.0/
    ├── Tamarin.dll
    ├── Tamarin.rhp
    ├── icon.png
    └── misc/
        ├── License.txt
        └── README.md
Anmerkung
Der Dateiname enthält ein “distribution tag” (in diesem Fallrh8_0-any). Der erste Teil, rh8_0, wird von der Version von Rhinocommon.dll oder Rhino C++ SDK abgeleitet, die im Plug-in-Projekt referenziert wird. Der zweite Teil, any, bezieht sich auf die Plattform, für die das Plug-in bestimmt ist. Um ein plattformspezifisches Paket zu erstellen, führen Sie den Befehl build erneut mit dem Argument --platform <platform> aus, wobei <platform> entweder win oder mac sein kann.
Anmerkung
Vielleicht bemerken Sie, dass sich der GUID Ihres Plug-ins in den Schlüsselwörtern versteckt hält. Weitere Informationen darüber, wie dies verwendet wird, finden Sie im Benutzerhandbuch “Paketwiederherstellung in Grasshopper“

Herzlichen Glückwunsch! 🙌 Sie haben gerade ein Multi-Target-Paket für Ihr Grasshopper-Plug-in erstellt.

Weitere Schritte:

Nachdem Sie nun ein Paket erstellt haben, pushen Sie es auf den Paketserver, damit es im Paketmanager verfügbar ist!