2012-07-12 10 views
6

Ich versuche, dass mein TeamCity-Server Pakete von NuGet abholt, damit ich nicht alle Assemblys in meine Repositories aufnehmen muss.TeamCity mit NuGet, fehlende Referenzen

Zunächst scheint alles zu funktionieren, aber wenn der MSBuild-Schritt einsetzt, sind die benötigten Baugruppen/Pakete nirgendwo zu finden.

Ich habe meine Pakete Ordner zu meinem Repository hinzugefügt, und ich versuchte, mein Projekt ermöglicht zu „NuGet Paket aktiviert wiederherstellen“, wie hier darauf hingewiesen:

http://docs.nuget.org/docs/workflows/using-nuget-without-committing-packages

Weder scheint zu funktionieren. Wenn ich den Paketordner im Arbeitsverzeichnis() anschaue, ist dieser leer, also wurden keine Pakete abgeholt?

sind hier das Protokoll aus den nuget Aufgaben:

[09:11:44][Step 1/2] install: Installing NuGet packages for ApplicationBoilerplate\packages.config 
[09:11:44][install] NuGet command: C:\TeamCity\buildAgent\tools\NuGet.CommandLine.2.0.0.nupkg\tools\NuGet.exe install C:\TeamCity\buildAgent\work\76a8f67cab97e73b\ApplicationBoilerplate\packages.config -OutputDirectory C:\TeamCity\buildAgent\work\76a8f67cab97e73b\packages 
[09:11:44][install] Starting: C:\TeamCity\buildAgent\temp\agentTmp\custom_script862718012095619696.cmd 
[09:11:44][install] in directory: C:\TeamCity\buildAgent\work\76a8f67cab97e73b\ApplicationBoilerplate 
[09:11:45][install] Process exited with code 0 

Sollten die Pakete Ordner leer bleiben (eine Art temporärer Speicherung?) Oder sollten sie die heruntergeladenen Pakete enthalten?

+0

Lassen Sie mich noch hinzufügen, das Projekt aus dem Repository Herunterladen und Kompilieren In Visual Studio funktioniert es wie ein Zauber, die benötigten Pakete werden in den Paketordner heruntergeladen. –

+0

Funktioniert diese Befehlszeile auf TeamCity Server? Sehen Sie sich das ASP.NET Web Stack-Projekt an. Sie haben es standardmäßig integriert: http://aspnetwebstack.codeplex.com/SourceControl/changeset/view/1ccfcdfc11da#.nuget%2fNuGet.targets –

Antwort

4

Ab NuGet 2.0 müssen Sie mehr tun, als die Dokumentseite beschreibt. Hier ist ein blog about the change.

schrieb ich einen Beitrag über das Aktivieren Paket wiederherstellen eine Umgebungsvariable mit: Enable NuGet PackageRestore on CC.NET

Rob Reynolds ein NuGet Paket erstellt, das diese automatisch beheben soll, aber ich habe es noch nicht ausprobiert.

NuGet Enable Package Restore (For Real) 2.0.0

Wenn Ihr Teamcity-Server keinen Zugriff auf das Web hat, dann können Sie dieses Problem haben auch:

NuGet package restore assumes internet access

+0

Vielen Dank für den Versuch, mir zu helfen, ich habe gerade den Beitrag über die Änderung gelesen und ich erlaubte NuGet bereits, Pakete automatisch herunterzuladen. Ich habe deinen Trick für CC ausprobiert, kein Glück, und das Paket, das du verlinkt hast, schlägt bei meinem Setup fehl (aus irgendeinem Grund). –

+0

Erhalten Sie immer noch den gleichen Exit-Code '0'? Hat der Server Zugriff auf das Internet, gibt es ein weiteres Problem mit dem Internetzugang. –

+0

Und das ganze Bootstrapper-Ding wurde zurückgesetzt, wie hier gezeigt: http://nuget.codeplex.com/workitem/2390. Wohin die Pakete gehen: Die Installation von nuget.exe verwendet den Schalter "-o", um auf den Installationsordner zu zeigen. Dort landen Ihre Pakete, wenn sie gefunden werden. Wenn nicht gefunden, stellen Sie sicher, dass die Datei nuget.targets (von pkg restore hinzugefügt) auf Ihre Paketquellen verweist ( -Element). –

Verwandte Themen