Fortuna Entwickler Blog

Hier wird Ihnen geholfen

NuGet Package Source für myLife Bibliotheken

Zum Testen der Möglichkeiten eines eigenen NuGet Package Servers habe ich selbigen mal - mit Hilfe eines NuGet Packages - erstellt und auf WEBENTW3 gepublished.
Die "Quellen" für den Server habe ich unter Fortuna/Tools/Ares.NuGetServer abgelegt und unter http://webentw3/Ares/myLifeNuGet/ veröffentlicht.

In Visual Studio kann man nun den sogenannten Package Feed hinzufügen:


Im nächsten Schritt habe ich eine unserer Bibliotheken zu einem NuGetPackage gemacht; da es hier keine weiteren Referenzen auf weitere Bibliotheken gab, habe ich Fortuna.Security verwendet.

Hierfür sind im Grunde nur zwei Schritte notwendig. Zum einen benötigt man eine Spezifikationsdatei; hierin werden Informationen zum Package abgelegt, welche dann später im Package Manager (z.B. von Visual Studio ersichtlich sind bzw. nach denen gesucht werden kann. Praktischerweise kann man einige Informationen aus den Projektproperties referenzieren:

<?xml version="1.0"?>
<package >
  <metadata>
    <id>$id$</id>
    <version>$version$</version>
    <title>$title$</title>
    <authors>myLife Lebensversicherung AG</authors>
    <owners>myLife Lebensversicherung AG</owners>
    <licenseUrl>http://webentw3/Fortuna</licenseUrl>
    <projectUrl>http://webentw3/Fortuna</projectUrl>
    <iconUrl>http://webentw3/Ares/myLifeNuGet/logo.ico</iconUrl>
    <requireLicenseAcceptance>false</requireLicenseAcceptance>
    <description>Kryptos myLife</description>
    <releaseNotes>Aktuelle Version der Bibliothek</releaseNotes>
    <copyright>Copyright 2015</copyright>
    <tags>myLife Fortuna Security Kryptologie</tags>
  </metadata>
</package>

Im zweiten Schritt habe ich dem Projekt einen Post Build Event hinzugefügt (Unter Properties -> Build Events):

nuget pack "$(ProjectPath)" -outputdirectory "\\WEBENTW3\inetpub\wwwroot\Ares\myLifeNuGet\Packages" -IncludeReferencedProjects


Wenn das Projekt nun erstellt wird, wird nach erfolgreichem Build das Binary in ein Package gepackt und im angegeben Pfad abgelegt.

Will man nun in einem Projekt das Package verwenden, ruft man wie gewohnt den Package Manger auf, wählt den myLife Feed und wählt das gewünschte Package aus. Fertig.

Vorteil: Man fügt seinem Projekt nur noch jene Bibliothek hinzu, die man tatsächlich benötigt; abhängige Bibliotheken werden automatisch geladen.

Nachteil: Die Bibliothek selbst kann man direkt nicht mehr ändern; hierzu muss man das Projekt der Bibliothek laden, die Änderung durchführen und neu builden.

Was wäre zu noch tun: Alle Bibliotheken müssen wie oben beschrieben bearbeitet werden. Bestehende Referenzen müssen entfernt und dann über NuGet neu gesetzt werden. Also auch Bibliotheken, die andere Bibliotheken referenzieren, müssen diese dann über NuGet referenzieren.