NuPack - externen Libraries einfach einbinden
Anfang der Woche bin ich auf NuPack gestoßen und habe mich näher damit beschäftigt.
Scott Hanselman:
NuPack is a package management system for .NET. The goal of NuPack is to make the process of incorporating third party libraries into your solutions as simple as possible.
Genauer: NuPack ist eine konsolenanwendung mit einer PowerShell Integration und eine Integration in das Visual Studio 2010 die es ermöglicht externe Libraries als Pakete herunterzuladen und direkt in das eigene Projekt einzubinden. Es muss also nicht mehr manuell heruntergeladen, entpackt und im eigenen Projekt referenziert werden. Updates von Libraries gestaltet sich ebenso einfach. Diese Aufgaben übernimmt NuPack.
Das Prinzip ist nicht neu, sonder ist Abgeschaut von Ruby Gems.
Nicht nur ich, habe mir NuPack genauer angeschaut, sondern auch de üblichen Verdächtigen, wie Scott Hanselman und Phil Haak:
Introducing NuPack Package Management for .NET - Another piece of the Web Stack
Introducing NuPack Package Manager
NuPack im Visual Studio
NuPack wird als Extension im Visual Studio 2010 installiert und ist im Extension Manager sichtbar:
Um eine neue Referenz auf eine externe Library einzufügen kann man wie gewohnt mit einem Rechtsklick auf den Referenzenordner machen. Nur dass man jetzt zusätzlich noch den Punkt “Add Package Reference…” zur Verfügung hat:
Es öffnet sich nun der Package Manager aus dem die gewünschte Komponente ausgewählt werden kann:
Ich habe Peter Buchers LightCore als NuPack Package veröffentlicht, das nun im Package Manager angezeigt wird und zur Auswahl bereit steht. Wie man ein eigenes Package erzeugt und bereit stellt, habe ich in Beitrag NuPack – eigene Packages erstellen beschrieben.
Nach dem Klick auf “Install” werden nun die Referenzen auf LightCore in das Projekt eingefügt. Zusätzlich befindet sich im Projekt eine Datei mit dem Namen “packages.config”, welche eine Liste mit installierten Packages und deren Versionen enthält:
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="LightCore" version="1.4.1" />
</packages>
Das ist alles um eine externe Library zu referenzieren und zu nutzen. Neben LightCore gibt es eine ganze Menge weiterer Libraries, die in NuPack enthalten sind: NUnit, NHibernate, Castle, Elmah, log4net, NLog und viele andere.
Im Moment wächst die Anzahl der Libraries stündlich weiter an :-)
Im Visual Studio ist neben dem Package Manager auch eine auf Power Shell basierende Konsole enthalten. Unter “View => Other Windows => Package Manager Console” kann die Konsole aufgerufen werden. Der Befehl “List-Package” listet beispielsweise alle vorhandenen Packages auf:
Das Hinzufügen einer Referenz lässt sich natürlich auch über diese Konsole erledigen..
Die vorhandenen Packages werden übrigens auf eine wirklich simple Art bekannt gemacht. Sie werden ganz einfach als RSS Newsfeed veröffentlicht NuPack ließt nur das Feed ein, das alle nötigen Informationen über die einzelnen Packages enthält. Die Adresse des Feeds lautet: http://go.microsoft.com/fwlink/?LinkID=199193