Nuget-Pakete direkt in Powershell benutzen


Powershell und Nuget, ein schwieriges Thema wenn man mit diesen beiden Begriffen auf Google losgeht. Man findet massenhaft Treffer aber die meisten handeln um Powershell+Nuget+Visual Studio. In diesem Artikel möchte ich beschreiben, was man tun muss um Nuget-Pakete, die üblicherweise für C# bzw. das .Net-Framework erstellt wurden, in Powershell nutzen zu können. Konkret geht es darum Pakete die unter https://www.nuget.org/packages zu finden sind direkt unter Powershell nutzbar zu machen.

Hat man ein aktuelles Windows 10 System mit Powershell 5.1 dann bekommt man automatisch das PackageManagement-Modul mitgeliefert. Allerdings hat man zu Anfang nur Zugriff auf PSGallery. Damit man auf die große Welt der Nuget-Pakete zugreifen kann, muss man einen PacketSource für Nuget hinzufügen. Dazu benötigt man den Einsprungspunkt für die Nuget-Paketauflistung. Dieser ist direkt unter https://www.nuget.org/ zu finden.

Dort sind momentan die beiden Feeds

NuGet feed v3 (VS 2015 / NuGet v3.x): https://api.nuget.org/v3/index.json

NuGet feed v2 (VS 2013 and earlier / NuGet 2.x): https://www.nuget.org/api/v2

aufgeführt. Welchen von beiden soll man verwenden? Man kann sich an der Nuget-Version, welche Powershell verwendet orientieren. Dazu fragt man einfach

Get-PackageProvider –Name Nuget

ab. Dort wird momentan Version 2.8.5.208 geliefert. Also verwendet man den v2 Feed. Dies geschieht durch hinzufügen eines PacketSource mit der v2-Feed-Adresse:

Register-PackageSource –Name MyNuget  –Location "https://www.nuget.org/api/v2" –Providername Nuget

Beim ersten Aufruf erfolgt eine Rückfrage:

Der Anbieter "nuget v2.8.5.208" ist nicht installiert.
"nuget" kann manuell von https://oneget.org/Microsoft.PackageManagement.NuGetProvider-2.8.5.208.dll heruntergeladen und installiert werden.
Soll PackageMangement automatisch heruntergeladen und "nuget" jetzt installiert werden?

Diese sollte man mit J beantworten. Anschließend kann man auf die Nugetpaketsammlung zugreifen:

Find-Package –Source MyNuget –Name *Mail*

Damit bekommt man alle vorhandenen Pakete die im Namen Mail enthalten aufgelistet.

Schreibe einen Kommentar

Trage deine Daten unten ein oder klicke ein Icon um dich einzuloggen:

WordPress.com-Logo

Du kommentierst mit Deinem WordPress.com-Konto. Abmelden / Ändern )

Twitter-Bild

Du kommentierst mit Deinem Twitter-Konto. Abmelden / Ändern )

Facebook-Foto

Du kommentierst mit Deinem Facebook-Konto. Abmelden / Ändern )

Google+ Foto

Du kommentierst mit Deinem Google+-Konto. Abmelden / Ändern )

Verbinde mit %s


%d Bloggern gefällt das: