2013-09-28 10 views
6

Lesen wiederherstellen konfigurieren Using NuGet without committing packages to source control ich verstanden habe, ich sollte die .nuget Ordner zu meinem Projekt hinzufügen Paket während Build ermöglichen wiederherstellen ... und Lesen Prepare a git repo for NuGet Ich habe verstanden, ich konnte NuGet.exe entfernen und NuGet.config und lassen Sie die IDE diese automatisch herunterladen, indem Sie DownloadNuGetExe auf true in NuGet.targets setzen.NuGet - Wie Paket auf MonoDevelop/Xamarin Studio

Nun, ich bin ein wenig verwirrt, da 1) Xamarin Studio nicht herunterladen weder NuGet.exe noch NuGet.config ... und 2) die .nuget Ordner sind gar nicht nötig, da man nur Befehl ausgeben könnte wiederherstellen NuGet Pakete auf Der Lösungsexplorer und die Pakete werden trotzdem wiederhergestellt.

Having said, was ist der richtige Weg zu konfigurieren Paket wiederherstellen auf Xamarin Studio/MonoDevelop?

Antwort

3

Das Aktivieren der Paketwiederherstellung, so dass es beim Kompilieren des Projekts passiert, ist mit dem NuGet-Add-In für Xamarin Studio nicht möglich. Es ist etwas, das ich nicht umgesetzt habe. Wenn Sie dies tun möchten, müssen Sie die Dateien manuell hinzufügen und das Projekt bearbeiten, um die Datei NuGet.targets zu verwenden.

Persönlich würde ich stattdessen die Menüoption Restore NuGet Packages verwenden und nicht die Datei NuGet.targets verwenden. Eine Sache, die Sie hier verlieren, ist eine Paketwiederherstellung bei jedem Build auszulösen, aber Sie müssen es nur einmal tun. Sie erhalten auch einige Vorteile bei der Verwendung dieses Ansatzes:

  1. Ihr Projekt muss nicht geändert werden.
  2. Alle NuGet-Pakete werden wiederhergestellt, bevor XBuild ausgeführt wird. Daher werden alle NuGet-Pakete, die ihre eigenen benutzerdefinierten XBuild-Importe haben, zum Zeitpunkt der Kompilierung wiederhergestellt und verfügbar.
+3

warum nicht implementieren? – JarrettV

+0

Das NuGet-Team empfiehlt die Verwendung von NuGet-Wiederherstellung anstelle der Verwendung der NuGet.targets-Datei. Die neueste Version von NuGet wird automatisch NuGet-Pakete beim Kompilieren wiederherstellen, ohne dass eine NuGet.targets-Datei benötigt wird. Dies könnte im Xamarin Studio Add-in implementiert werden. Der Nachteil ist, dass das Add-in beim Start geladen werden muss, um Build-Ereignisse zu erkennen. Aus diesem Grund habe ich nur Unterstützung für die Wiederherstellung hinzugefügt, die über ein Menü ausgelöst wird. –

3

Oder Sie können die neue Paketwiederherstellung in 2.7 verwenden. Führen Sie einfach

nuget.exe restore <your_solution_file> 

, um alle Pakete, die von den Projekten in der Lösung verwendet werden, wiederherzustellen.

Weitere Informationen finden Sie unter http://docs.nuget.org/docs/reference/package-restore.

+0

Soweit ich das beurteilen kann, funktioniert das bei Mono nicht, worüber OP gesprochen hat. Paketwiederherstellung gegen .sln wird speziell in den nugget docs aufgerufen, da noch nicht unter Mono gearbeitet wird - http://docs.nuget.org/consume/compatibility – piers7

+0

"nuget restore solution.sln" Funktioniert für mich in Mono mit NuGet 3.3, aber nicht für lokale (Verzeichnis) basierte Repositories. Natürlich funktionieren lokale Repos für mich auch nicht von der GUI aus, also ... – tekHedd