OneGet mit eigenem NuGet Server

Seit Mai 2014 gibt es eine Preview des Windows Management Frameworks 5.0. Darin enthalten ist PowerShell 5, das neue gute Features mitbringt. In diesem Beitrag schauen wir uns eines davon an: OneGet.

Autor Raphael Fäh
Datum 20.11.2014
Lesezeit 4 Minuten

Seit Mai 2014 gibt es eine Preview des Windows Management Frameworks 5.0. Darin enthalten ist PowerShell 5, die neuste Version von Microsofts grossartigem Automatisierungs- und Managementtool. PowerShell 5 bringt uns, wie auch schon Version 4, neue tolle Features. Eines davon wollen wir uns heute anschauen: OneGet.

Hat man bereits einmal mit einer Linux Distribution gearbeitet, dürfte man apt-get kennen – oder im Falle einer Arbeit mit Visual Studio NuGet. OneGet baut tatsächlich auf NuGet auf und ermöglicht es dem Benutzer, mit einem Einzeiler (!) beliebig viele Softwarepakete direkt aus der «Chocolatey»-Source (https://chocolatey.org/) herunterzuladen und auf dem PC zu installieren. Es kommt aber noch besser: Man kann sogar absolut ohne Probleme seine eigene Company-Paketsource aufsetzen – mit Hilfe eines NuGet Servers. Genau das werden wir jetzt tun.

Corporate Software Blogeintrag NuGetServer2 fertig

Für meine Tests habe ich einen Server 2012 R2 verwendet. Wenn man nicht gerade einen zur Verfügung hat: Hier gibt es eine Gratis -Trial-Version für Windows Azure: http://azure.microsoft.com/de-de/pricing/free-trial/

WMF 5.0 Preview, OneGet and Visual Studio

Als Erstes brauchen wir das Windows Management Framework 5. Dieses laden wir hier herunter: http://www.microsoft.com/en-us/download/details.aspx?id=42936

Wir installieren es, öffnen PowerShell und führen $PSVersionTable aus. Bäm! PowerShell Version 5:

powershell-5-oneget-nuget-digicomp-01

Nun können wir das OneGet Modul importieren und uns die Commands anschauen:

Import-Module OneGet
Get-Command –Module OneGet

powershell-5-oneget-nuget-digicomp-02

Um einen eigenen NuGet Server zu basteln, benötigen wir als Nächstes Visual Studio – glücklicherweise reicht aber auch die Express-Version: http://www.microsoft.com/en-US/download/details.aspx?id=40747

Nach dem Download und der Installation öffnen wir Visual Studio und erstellen ein neues Projekt:

powershell-5-oneget-nuget-digicomp-03

Im nächsten Dialog wählen wir «Empty» und klicken «Ok», da wir ein leeres Projekt erstellen wollen. Ist das Projekt erstellt, klicken wir mit der rechten Maustaste darauf und wählen «Manage NuGet Packages».

powershell-5-oneget-nuget-digicomp-04

Hier suchen wir nach «NuGet Server» und installieren diesen.

Eigentlich sind wir mit der Installation fertig, haben aber hier die Chance, einige vorher heruntergeladene NuGet Packages hinzuzufügen:

Wir klicken mit der rechten Maustaste auf den neu erstellten Ordner «Packages», gehen auf «Add» und dann auf «Existing Item». Hier wählen wir die Pakete und fügen Sie zum Projekt hinzu. Zum Download empfehle ich den NuGet Package Explorer: http://npe.codeplex.com/

powershell-5-oneget-nuget-digicomp-05

Um unser Projekt kompilieren zu können, klicken wir mit der rechten Maustaste auf den Projektnamen und wählen «Publish». Dann klicken wir auf das Dropdown und wählen «New Profile», geben ihm einen Namen und klicken «Ok». Unter Publish-Methode wählen wir «FileSystem» und geben einen Zielpfad ein, z.B. «C:\MyNuGetServer». Dann klicken wir «Next», «Next», «Publish».

Als Nächstes müssen wir den Web Server (IIS) installieren. Hierzu können wir PowerShell verwenden:

Install-WindowsFeature Web-Server, Web-ISAPI-Ext,Web-ISAPI-Filter,Web-Net-Ext45,Web-Asp-Net45–IncludeManagementTools

Danach öffnen wir IIS, expandieren die Default Website und wählen via Rechtsklick den Befehl «Add Virtual Directory».

powershell-5-oneget-nuget-digicomp-06
Als Alias vergeben wir zum Beispiel «MyNuGetServer», als Pfad den Ordner, in den das Build published wurde – in meinem Fall «C:\ MyNuGetServer».

Danach auf den neu in IIS erstellten Ordner rechtsklicken und «Convert to Application» wählen, «Ok» klicken und so die Installation abschliessen.

Mit Rechtsklick auf die Applikation, «Manage Application», «Browse» kann das Ergebnis begutachtet werden.

powershell-5-oneget-nuget-digicomp-07

Nun wollen wir den Server aber auch noch in OneGet einbinden!

Add-PackageSource -Name "MyNuGetServer" -Location "http://onegettest/MyNuGetServer/nuget" -Provider Chocolatey –Trusted

Danach suchen wir zum Beispiel nach dem VLC-Media-Player-Paket und installieren es:

Find-Package –Source MyNuGetServer –Name vlc | Install-Package

Und: Erfolg!

powershell-5-oneget-nuget-digicomp-08


Über den Autor

Raphael Fäh

Schon während seinem Studium zum Bachelor in Wirtschaftsinformatik hat Raphael Fäh Praxisbezug gesucht und gefunden – bei diversen KMU und zuletzt bei der Corporate Software GmbH. Seitdem ist er in verschiedenen Kundenprojekten im Bereich Microsoft System Center, PowerShell und SharePoint unterwegs. Er schult mit seinem Praxiswissen als Microsoft Certified Trainer IT Professionals in aktuellen Microsoft-Technologien. Seinen Ausgleich sucht und findet er beim Bogenschiessen. Ob als Bogenschütze, Dozent oder Consultant – er trifft ins Schwarze.