© DrHitch/Shutterstock.com
Päckchen mit NuGet und TFS packen

2 NuGet-Pakete debuggen, verteilen und managen


Im ersten Kapitel haben wir gesehen, wie NuGet Packages schnell und einfach erstellt werden können. Wie steht es aber mit dem Debugging, wenn diese Pakete in andere Projekte eingebunden werden?

Debuggen lokal erstellter Pakete

Haben wir das Paket auf unserem eigenen Rechner erstellt, ist die Sache recht einfach, da die aktuellen Sourcen zu dem Paket lokal vorliegen und vermutlich genau diese Version auch in unser Paket verpackt wurde. Für dieses Szenario genügt es, die .pdb-Datei in das Projekt mit einzufügen. Dazu kann die .nuspec-Datei entsprechend erweitert werden:

<files>
<file src="$ProjectOutputDir$\MathLib.dll" target="lib\MathLib.dll" />
<file src="$ProjectOutputDir$\MathLib.pdb" target="lib\MathLib.pdb" />
</files>

Der nuget pack-Befehl besitzt einen Parameter -symbols. Geben wir diesen an (entweder direkt in der Konsole oder in unserer target-Datei), werden zwei Pakete erstellt: eines, in dem nur die dlls enthalten sind und eines, in dem zusätzlich die .pdb-Datei enthalten ist. Wir können das Symbol-Package in unser Repository kopieren und in unserem Anwendungsprojekt aktualisieren.

Debuggen wir nun im Anwendungsprojekt, lässt sich in den Code unseres Packages hineinspringen. Wir sehen, dass die Datei aus dem Source-Pfad unseres Package-Codes angezeigt wird.

Debuggen von Packages aus TFS Team Build

Wird das Package allerdings von einem Kollegen oder mit TFS Team Build erstellt, funktioniert der oben beschriebene Weg nicht. Hier haben wir als Nutzer des Packages nicht zwingend die Sourcen des Packages in der richtigen Version an der gleichen Stelle auf unserem Entwicklungsrechner. Über unser Package haben wir zwar Zugriff auf die .pdb-Datei, die Codedateien allerdings fehlen uns. Es muss also eine andere Lösung gefunden werden.

Wir brauchen zunächst einen Netzwerk-Share, auf den die Entwickler und TFS Team Build Zugriff haben. In unserer Build-Definition geben wir diesen Pfad unter Path to Publish Symbols an und stellen Index Sources auf true.

Wir erhöhen noch einmal die Versionsnummer in unserer .nuspec-Datei und dieses Mal zudem in der AssemblyInfo.cs, um eine neue Assembly zu erhalten. Anschließend wird alles eingecheckt und der Build getriggert. Danach kopieren wir das Package (nicht das Symbol-Package) in unser Repository und aktualisieren es.

Jetzt werden noch einige Einstellungen in Visual Studio benötigt. Zuerst geben wir den Pfad zu den Symbolen an, den auch TFS Build nutzt (Abb. 2.1).

schissler_1_1_fmt.png

Abbildung 2.1: Pfad auf die Symboldateien setzen (i...

Neugierig geworden?

Angebote für Teams

Für Firmen haben wir individuelle Teamlizenzen. Wir erstellen Ihnen gerne ein passendes Angebot.

Das Library-Modell:
IP-Zugang

Das Company-Modell:
Domain-Zugang