NuGet im Visual Studio

Hallo Spaß-Coder.

Abhängigkeiten zu anderen, fremden Bibliotheken zu verwalten ist ein Graus. Vor allem dann, wenn wir verteilt, also mit mehreren Entwicklern an einer Softwarelösung arbeiten. Wie sorgen wir dafür, dass alle Entwickler die neue Bibliothek, die wir im Projekt eingebunden haben auch bekommen? Legen wir sie auf dem zentralen Dateisystem ab? Auf einem extra dafür eingerichteten FTP-Server? In Dropbox? Oder checken wir die dlls sogar in SVN oder git ein?

Das sind alles mögliche Wege, das Problem in den Griff zu bekommen, eine echte Lösung stellt aber keiner dieser Wege dar. Hier kommt NuGet ins Spiel. NuGet ist eine Paket-Verwaltung, mit dessen Hilfe Entwickler Bibliotheken durch einfache Konfiguration im Visual Studio zu einem Projekt hinzugefügt werden können. Gemeinsam genutzte Bibliotheken werden dann, bei Bedarf, zentral aus dem Internet herunterladen. Der Entwickler, der eine Bibliothek zu einem Projekt hinzufügt muss sich also nicht um die Verteilung kümmern.

Um NuGet hat sich in den letzten Jahren ein aktives Ökosystem gebildet, das – vor allem im Open Source Umfeld – stetig mehr Unterstützung findet. So kann nahezu jede bekannte Open Source Bibliothek per NuGet einem Projekt hinzugefügt werden. Dabei wird nicht nur für die Verteilung gesorgt, sondern auch sichergestellt, dass genau die richtige Version der Bibliothek verwendet wird; auch für die richtige Version des .Net-Frameworks.

Es spricht also viel dafür, NuGet zu verwenden, wenn man Bibliotheken in seinem Projekt verwenden möchte. Aber wie funktioniert das Ganze?

Möchten wir in einem Test-Projekt z.B. die Bibliothek Fluent Assertions verwenden, wie im Artikel Unit Tests in C# schreiben beschrieben, gehen wir folgendermaßen vor:

  1. Wir wählen im Solution Explorer im Test-Projekt den Punkt „References“ und wählen aus den Kontext-Menü den Punkt „Manage NuGet Packages…“ aus
    NuGet-ManagePackages
  2. Im sich öffnenden Dialog suchen wir nach der gewünschten Bibliothek (in unserem Fall „Fluent Assertions“), in dem wir den Namen in das Suchfeld eingeben.
    Fluent Assertions Bibliothek im NuGet Package ManagerWichtig: Um Online zu suchen, muss im linken Bereich auch Online ausgewählt sein.
  3. Durch einen Klick auf „Install“ wird die Bibliothek dem Projekt hinzugefügt und auch direkt heruntergeladen, damit wir sie gleich verwenden können.
    Hinweis: Dass die Bibliothek durch NuGet verwaltet installiert ist, wird durch ein kleines Häkchen anstelle des „Install“-Buttons angezeigt
  4. Dem Projekt wurden nun zum einen die Verweise (References) hinzugefügt. Darüber hinaus wurde aber auch die NuGet-Konfiguration in Form einer Datei mit dem Namen packages.config hinzugefügt.
    NuGet-packages.configDiese Datei ist ab sofort wichtiger Bestandteil des Projekts. Wird sie gelöscht, fehlt die Information darüber, welche Bibliotheken NuGet herunterladen soll.

Nun können wir die hinzugefügte Bibliothek verwenden. Sobald das Projekt mit anderen Entwicklern geteilt wird (z.B. über SVN) weiß das Visual Studio, dass es die Bibliothek Fluent Assertions braucht und lädt sie aus dem Internet herunter. Der Entwickler muss sich darum nicht mehr kümmern.

Ein Problem gibt es allerdings mit Bibliotheken, die nicht über nuget.org erhältlich sind. In einem solchen Fall hilft es nur, sich einen eigenen NuGet-Server einzurichten oder – falls es angeboten wird – auf den NuGet-Server des Herstellers zuzugreifen. Um einen weiteren NuGet-Server dem Visual Studio bekannt zu machen, öffnen wir noch einmal den NuGet-Package Manager (Kontext-Menü im Solution Explorer und dort der Punkt „Manage NuGet Packages…“) und klicken unten links auf Settings. Im folgenden Dialog können nun weitere NuGet-Server hinzugefügt werden, die dann bei der Online-Suche mit durchsucht werden.

NuGet-Settings

Zusammenfassung

In diesem Artikel haben wir uns angeschaut, was NuGet ist und wie es uns dabei helfen kann, Abhängigkeiten zu anderen Bibliotheken in den Griff zu bekommen. Dies ist vor allem dann hilfreich, wenn wir verteilt mit mehreren Entwicklern an einer Lösung arbeiten.

 

Viel Spaß beim Ausprobieren und Happy Coding wünschen

eure Spaß-Coder

 

Verwendete Werkzeuge:

 

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.