NuGet - repositories.config

75

NuGet-Neuling-Frage -
Ich habe gesehen, repositories.configdass sie im NuGet-Paketordner hinzugefügt wurde.
Kann mir bitte jemand sagen, was der Zweck dieser Datei ist?

Vielen Dank!

Inutan
quelle
verwandt
Jake Berger

Antworten:

64

Es handelt sich um eine Datei, die hauptsächlich aus NuGet-Implementierungsdetails besteht und nicht direkt behandelt werden sollte (sie kann verschwinden oder sich in Zukunft ändern).

Als Referenz enthält es jedoch eine Liste von Pfaden, die auf alle packages.config in der Lösung verweisen. Normalerweise gibt es eine pro Projekt, die NuGet verwendet.

David Ebbo
quelle
44
Sollte es in die Quellcodeverwaltung einbezogen werden?
Colonel Panic
44
@MattHickford Wenn Sie den Workflow zur Paketwiederherstellung verwenden, können Sie den Ordner "Pakete" in der Quellcodeverwaltung (einschließlich dieser Datei) vollständig weglassen.
David Ebbo
2
Eine Sache noch. Wenn Sie CI TeamCity> = 7.0 verwenden, gibt es einen Build-Schritt für die Nuget-Installation. Und dieser Schritt erfordert diese Datei. Zumindest in 7.0.3. Wir mussten reititories.config zu git hinzufügen. Achtung.
Sergio Rykov
1
Ich hatte einige Projekte zu einer Lösung hinzugefügt, die ich später aus der Lösung entfernt hatte, und die Referenzen in meiner Datei repositories.config wurden nicht bereinigt. Das manuelle Bearbeiten dieser Datei schien in diesem Fall das Richtige zu sein.
Funka
3
Ich lösche den Paketordner in TFS (lokaler Arbeitsbereich) immer wieder und begebe diese Löschung. Ich habe ihn immer \*\packagesignoriert .tfignore, aber das Verdammte wird packages\repositories.configimmer wieder zu TFS hinzugefügt. Im Internet gibt es dazu mehrere unbeantwortete Fragen. Können Sie hier das erwartete Verhalten klären? Vielen Dank!
Jason Kleban
29

Die Antwort von David Ebbo stammt aus dem Jahr 2011, und der offizielle Rat wechselt ständig zwischen den Versionen.

Hier stehen wir 2015 für NuGet 2.7+ mit dem Workflow 'Automatic Package Restore' (empfohlen)

Ich paraphrasiere, aber im Grunde ist der Rat:

packages/repositories.configAus der Quellcodeverwaltung entfernen . Wir werden es trotzdem neu generieren.

... es sei denn, es bricht irgendwie auf Ihrer Maschine. Fügen Sie es dann zur Quellcodeverwaltung hinzu.

Dieser Hinweis stammt aus dem Abschnitt zum Ignorieren von Dateien in git :

# Ignore NuGet Packages
*.nupkg
# Ignore the packages folder
**/packages/*

Und der wichtige Teil:

[...]

# Uncomment if necessary however generally it will be regenerated when needed
#!**/packages/repositories.config
Cristian Diaconescu
quelle
2
Jedes Mal, wenn ich einen Build in VS durchführe, wird repositories.config automatisch zur Quellcodeverwaltung hinzugefügt. Wie kann ich das verhindern? Die .tfignore-Datei scheint keine Auswirkungen darauf zu haben und disableSourceControlIntegration nicht auf true zu setzen.
Timothy Schoonover
@ odysseus.section9 Siehe stackoverflow.com/questions/24143925/…
NathanAldenSr
9

Sie müssen die Datei repositories.config in Ihr Quellrepository aufnehmen, wenn Sie dem Workflow für die automatische Paketwiederherstellung folgen.

Werfen Sie einen Blick auf http://docs.nuget.org/docs/workflows/using-nuget-without-committing-packages, wo dieser Punkt ausdrücklich erwähnt wird.

Mickey Puri
quelle
3
Ja, nur ein bisschen verwirrend, denn es sieht so aus, als ob sich NuGet seit der akzeptierten Antwort etwas weiterentwickelt hat. @David Ebbo syays Sie können den Paketordner (einschließlich der Datei repositories.config) vollständig weglassen, aber Ihr Link besagt ausdrücklich: Stellen Sie sicher, dass Sie Ihre Datei repositories.config in einem leuchtend gelben Feld einchecken . Anschließend werden andere VCS-Systeme erwähnt. Ich frage mich also, ob sich die akzeptierte Antwort auf einen reinen "Paketwiederherstellungs-Workflow" in TFS bezog oder jetzt nur eine veraltete Antwort ist.
Rism
11
Der obige Link bezieht sich auf die MSBuild-basierte Paketwiederherstellung, nicht auf die automatische Paketwiederherstellung, in der repositories.config nicht erwähnt wird
Max Toro
Leider führt die Seite, die Sie jetzt verlinkt haben, eine 301-Umleitung zu / konsumieren / Paketwiederherstellung / msbuild-integriert
Chris F Carroll
Heute benötige ich für den Workflow "Automatische Paketwiederherstellung", nicht für MSBuild, mit Nuget 2.8.6 und VS 2013 unter Verwendung von TFS ./packages/repositories.config in der Quellcodeverwaltung (aber keines der Pakete selbst). Ich brauche auch ./.nuget/nuget.config in der Quellcodeverwaltung (und nuget.targets und nuget.exe müssen aus TFS und dem Arbeitsbereich gelöscht werden) und jede csproj-Datei muss alle Spuren des Nuget-Ziels und der Paketwiederherstellung gelöscht haben. Die Notwendigkeit für repositories.config war beim letzten Überprüfen der Nuget-Webseite nicht dokumentiert.
Subsci