Create a NuGet package from a .NET Class Library

Voraussetzung

  • Visual Studio / Visual Studio Code oder alternativen
  • Weiterhin benötigen wir das NuGet Command Line Interface1 das direkt von der NuGet Seite bezogen werden kann https://nuget.org/downloads

nuget.exe ist ein Tool und kein Installer, legt das Tool daher an geeigneter Stelle ab und setzt eure Path Variable.

Class Library Project anlegen

In Visual Studio File ein neues Class Library Projekt anlegen

.nuspec package manifest file anlegen

Jedes NuGet package benötigt eine manifest.nuspec Datei, diese beschreibt den Inhalt und Abhängigkeiten des NuGet Paket. Diese Datei kann über die NuGet CLI anglegt werden.

  1. Zuerst öffnen wir eine beliebe Kommandozeile und navigieren zu dem Ordner der die im Schritt vorher angelegte Class Library enthält sodass wir auf dem gleichen Level wie die .csproj Datei sind.
  2. Jetzt führen wir den Command nuget spec aus und generieren somit automatisch die Datei .nuspec
  3. Jetzt schauen wir uns einmal die Struktur dieser Datei an. Alle mit $$ gekennzeichneten Bereiche werden später durch den Paketierungsprozess mit den Informationen aus der AssemblyInfo.cs ersetzt.

Um das Paket zu erzeugen muss die Description ausgefüllt sein.

Package erzeugen

Das eigentliche NuGet Paket kann dann über den Command nuget pack <Projectname>.csproj erzeugt werden. Nach dem ausführen des Command ist das Package erstellt und kann genutzt werden.

Versionen

Die Versionsverwaltung erfolgt direkt über die 'nuspec' Datei oder alternativ als Assembly Attribut.

Ist eine Version einmal bei https://www.nuget.org/packages/manage/upload hochgeladen, kann diese nicht mehr verändert werden.

Es gelten folgende Konventionen Major.Minor.Patch:

  • Major: Breaking changes
  • Minor: New features, but backwards compatible
  • Patch: Backwards compatible bug fixes only
  1. Zum Zeitpunkt des Beitrags Version v3.4.4