Erstellen einer neuen Multiplattformbibliothek für NuGet
Das Erstellen eines Multiplattformbibliotheksprojekts, das PCL oder .NET Standard verwendet, bedeutet, dass das resultierende NuGet jedem .NET-Projekt hinzugefügt werden kann, das das Zielprofil unterstützt, einschließlich ASP.NET Projekten oder Desktop-Apps mit WinForms, WPF oder UWP.
Die Bibliothek darf nur Code enthalten, der vom ausgewählten PCL- oder .NET Standard-Profil unterstützt wird, sowie alle anderen hinzugefügten NuGets. Dies eignet sich für Geschäftslogik und Algorithmen, die vollständig in der .NET-Basisklassenbibliothek ausgedrückt werden können.
Eine einzelne Assembly wird erstellt und in ein NuGet-Paket integriert.
Wenn Sie später plattformspezifische Funktionen benötigen, können plattformspezifische Projekte hinzugefügt werden.
Schritte zum Erstellen einer NuGet-Multiplattformbibliothek
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 Multiplattformbibliothek die Option Multiplattformbibliothek > aus:
Geben Sie einen Namen und eine Beschreibung ein, und wählen Sie Für alle Plattformen Single aus:
Durchlaufen Sie den Assistenten. In der Projektmappe wird ein einzelnes Bibliotheksprojekt erstellt.
Klicken Sie mit der rechten Maustaste auf das neue Bibliotheksprojekt, und wählen Sie dann Optionen aus. Im Abschnitt Build > Allgemein kann das Zielframework festgelegt werden. Wählen Sie ein .NET Portable PCL-Profil oder eine .NET Standard-Version aus:
Öffnen Sie auch im Fenster Projektoptionen den Abschnitt NuGet-Paketmetadaten>, und geben Sie die erforderlichen Metadaten (sowie alle optionalen Metadaten) ein:
Klicken Sie mit der rechten Maustaste auf das Bibliotheksprojekt, und wählen Sie NuGet-Paket erstellen (oder die Projektmappe erstellen oder bereitstellen), und die NUPKG-NuGet-Paketdatei wird im Ordner /bin/ gespeichert (abhängig von der Konfiguration entweder Debuggen oder Release):
Überprüfen der Ausgabe
NuGet-Pakete sind ebenfalls ZIP-Dateien, sodass es möglich ist, die interne Struktur des generierten Pakets zu überprüfen.
Dieser Screenshot zeigt den Inhalt eines PCL-basierten NuGet – nur eine einzelne PCL-Assembly ist enthalten:
Hinzufügen von Platform-Specific Code
PCL-basierte Projekte und .NET Standard-basierte Projekte dürfen keine plattformspezifischen Verweise enthalten (z. B. iOS- oder Android-Funktionen).
Wenn ein vorhandenes PCL-Projekt oder .NET Standard-Projekt um plattformspezifischen Code erweitert werden muss, können Sie dazu mit der rechten Maustaste auf das Projekt klicken und Plattformimplementierung hinzufügen > ... auswählen:
Ein oder mehrere Plattformprojekte können der Projektmappe hinzugefügt werden, und die vorhandene PCL- oder .NET Standard-Bibliothek kann optional in ein freigegebenes Projekt konvertiert werden:
Besuchen Sie nach der Konvertierung in ein freigegebenes Projekt den AbschnittProjektoptionen > NuGet-Paketverweisassemblys>, und stellen Sie sicher, dass alle erforderlichen Profile ausgewählt sind (sodass das NuGet weiterhin mit Projekten kompatibel ist, in denen es zuvor verwendet wurde).