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!


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.


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

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


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.


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
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.