Manchmal kommt es vor, dass einem NuGet Package als .nupkg
Datei vorliegen, welche man gerne in sein bestehendes Projekt integrieren möchte. Dies kann zum Beispiel dann der Fall sein, wenn man seine eigenen NuGet Packages erstellt, aber diese nicht veröffentlichen möchte oder bei Preview-Versionen, welche nur ausgewählte Personen testen sollen. In diesem Beitrag möchte ich nun zwei verschiedene Wege aufzeigen, wie man mit sehr wenig Aufwand lokale .nupkg
Dateien in sein bestehendes Projekt integrieren kann. Dabei werde ich zwei verschiedene Ansätze aufzeigen.
Zunächst öffnen wir Visual Studio und öffnen dann die Einstellungen von NuGet über Tools – NuGet Package Manager – Package Manager Settings. Anschließend wird uns der folgende Dialog angezeigt.
Hier müssen wir nun in den Tab Package Sources wechseln.
Über den großen Plus-Button im oberen rechten Bereich fügen wir nun neben der bestehenden nuget.org
Quelle eine weitere Quelle hinzu. Hier können wir einen beliebigen Namen vergeben und als Source geben wir den Pfad zu einem lokalen Ordner an, wo wir die .nupkg
Dateien gespeichert haben an.
Wenn wir nun in unser Projekt wechseln und NuGet Packages hinzufügen wollen, dann können wir jetzt die Package source ändern und auf unsere neu hinzugefügte Quelle wechseln. Anschließend werden uns die lokalen Packages direkt angezeigt.
Damit sind wir jetzt bereits in der Lage lokale NuGet Packages zu verwenden und entsprechend Projekte einzusetzen. Allerdings gibt es auch einen Nachteil, denn wenn man im Team arbeitet, müssen alle Team-Mitglieder diese Einstellungen vorgenommen haben und entsprechend auch über die .nupkg
Dateien verfügen.
Daher gibt es noch eine zweite Variante. Bei dieser werden die .nupkg
mit im Code eingecheckt und der Pfad wird relativ zum Projekt angegeben, so dass jedes Team-Mitglied automatisch die richtige Version auf seinem Rechner hat und sich auch sonst um keine weiteren Einstellungen kümmern muss.
Hierzu legen wir zunächst unser Visual Studio Projekt an. In meinem Fall habe ich dann auf den gleichen Ebene, wie die .sln
Datei einen Ordner lib
angelegt. In diesen Ordner habe ich dann die notwendigen .nuget
Dateien kopiert bzw. abgelegt. Hierdurch können die Dateien jetzt zum Beispiel auch eingecheckt werden und stehen allen Entwicklern zur Verfügung. Im nächsten Schritte legen wir auf der .sln
-Ebene eine Datei nuget.config
an. Der Inhalt dieser Datei sieht dann wie folgt aus:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<packageSources>
<add key="LocalNuGetSource" value="lib" />
</packageSources>
</configuration>
Wie man dem Code entnehmen kann, können wir auch hier im key
-Attribut einen beliebigen Namen angeben und im value
-Attribut folgt dann der Pfad zu den Packages, welches in meinem Fall einfach der lib
-Ordner auf gleicher Ebene ist. Anschließend steht uns ebenfalls ein neuer Eintrag im NuGet Package Manager zur Verfügung und wir können die lokalen Packages hinzufügen.
Somit sind wir jetzt in der Lage lokale NuGet Packages unseren Projekten hinzuzufügen und diese bequem über den NuGet Package Manager zu verwalten.