Erstellen neuer Platform-Specific-Bibliotheksprojekte für NuGet
Multiplattformbibliotheksprojekte, die auf bestimmte Plattformen wie iOS und Android abzielen, funktionieren am besten mit freigegebenen Projekten.
Das NuGet kann sowohl iOS- als auch Android-spezifischen Code sowie .NET-Code enthalten, der für beide gemeinsam ist.
Mehrere Assemblys werden erstellt und in ein einzelnes NuGet-Paket integriert. NuGet-Standards stellen sicher, dass das Paket allen unterstützten Projekttypen hinzugefügt werden kann, z. B. Xamarin.iOS- und Android-Projekte.
Schritte zum Erstellen einer plattformübergreifenden Bibliothek NuGet
Wählen Sie Datei > Neue Projektmappe aus (oder klicken Sie mit der rechten Maustaste auf eine vorhandene Projektmappe, und wählen Sie Neues Projekt hinzufügen >aus).
Wählen Sie im Abschnitt Multiplatform-Bibliothek die Option Multiplatform-Bibliothek> aus:
Geben Sie einen Namen und eine Beschreibung ein, und wählen Sie Plattformspezifisch aus:
Durchlaufen Sie den Assistenten. Die folgenden Projekte werden der Projektmappe hinzugefügt:
- Android-Projekt : Android-spezifischer Code kann optional zu diesem Projekt hinzugefügt werden.
- iOS-Projekt : iOS-spezifischer Code kann optional zu diesem Projekt hinzugefügt werden.
- NuGet-Projekt : Diesem Projekt wird kein Code hinzugefügt. Sie verweist auf die anderen Projekte und enthält die Metadatenkonfiguration für die Ausgabe des NuGet-Pakets.
-
Freigegebenes Projekt : Diesem Projekt sollte allgemeiner Code hinzugefügt werden, einschließlich plattformspezifischem Code innerhalb von
#if
Compilerdirektiven.
Klicken Sie mit der rechten Maustaste auf das NuGet-Projekt, und wählen Sie Optionen aus, öffnen Sie dann den Abschnitt NuGet-Paketmetadaten>, und geben Sie die erforderlichen Metadaten (sowie alle optionalen Metadaten) ein:
Öffnen Sie auch im Fenster Projektoptionen den Abschnitt Referenzassemblys , und wählen Sie aus, welche PCL-Profile die freigegebene Bibliothek über "Köder und Switch" unterstützt:
Hinweis
"Bait und Switch" bedeutet, dass die PCL-Assemblys nur die API enthalten, die von der Bibliothek verfügbar gemacht wird (sie kann nicht den plattformspezifischen Code enthalten). Wenn das NuGet einem Xamarin-Projekt hinzugefügt wird, werden freigegebene Bibliotheken für die PCL kompiliert, aber die plattformspezifischen Assemblys enthalten den Code, der tatsächlich vom iOS- oder Android-Projekt verwendet wird.
Klicken Sie mit der rechten Maustaste auf das Projekt, und wählen Sie NuGet-Paket erstellen (oder die Projektmappe erstellen oder bereitstellen), und die NuGet-Paketdatei . nupkg wird im Ordner /bin/ gespeichert (abhängig von der Konfiguration entweder Debuggen oder Release).
Überprüfen der Ausgabe
NuGet-Pakete sind auch ZIP-Dateien, sodass es möglich ist, die interne Struktur des generierten Pakets zu überprüfen.
Dieser Screenshot zeigt den Inhalt eines plattformspezifischen NuGet, das iOS und Android unterstützt und zwei Referenzassemblys ausgewählt hat: