2012-12-05 15 views
7

Ist es möglich, eine NuGet v2.x-Paketwiederherstellung auszulösen, wenn Sie versuchen, eine VS2010-Lösung mit CruiseControl.Net zu erstellen?Wie kann man NuGet v2.x Package Restore von CruiseControl.Net auslösen

Wir haben vor kurzem CCNET eingerichtet und versuchen einfach, einen Testaufbau unserer Hauptlösung auszulösen. Bei vielen Projekten innerhalb der Hauptlösung ist die NuGet-Paketwiederherstellung aktiviert. Der Paketordner ist nicht an unser VCS gebunden. Aufgrund der neuen "Funktion", der Einwilligung in die Paketwiederherstellung in Visual Studio zuzustimmen, schlägt MSBuild fehl, wenn das Ziel des Wiederherstellungspakets in der Datei nugget.targets erreicht wird.

Wenn es ohne drastische Änderungen an jedem Projekt möglich ist, das NuGet verwendet oder um ein benutzerdefiniertes Build-Skript zu schreiben, was ist der beste Weg, die Paketwiederherstellung zu erreichen?

Antwort

7

von http://docs.nuget.org/docs/workflows/using-nuget-without-committing-packages Um die Paketwiederherstellung für Buildserver ohne installiertes Visual Studio zu aktivieren, können Sie auch die Umgebungsvariable EnableNuGetPackageRestore auf "true" setzen.

+1

Ja, und natürlich jetzt, da wir unseren eigenen internen NuGet-Server verwenden, muss ich herausfinden, wie ich ihn einrichten muss, damit er den internen Server für die Paketwiederherstellung kennt. Ich wünschte, die Leute von NuGet würden den einen Satz über 'EnableNuGetPackageRestore' prominenter machen. – Sumo

+0

Aus irgendeinem Grund funktionierte das für mich selbst nicht für Nuget 3.3. Ich hatte auch nuget.exe zu CCNet Maschine zum Download und das folgende für jede Lösung mit Paketen hinzu: ' \t \t \t \t wiederherstellen C: \ SomeSolution.sln \t \t \t 'vor Msbuild Aufgabe. – poke

+0

Ich habe Ihre Lösung @poke verwendet, aber aus irgendeinem Grund wird dies fehlschlagen, ohne dass ein Protokoll erstellt wird. –