Einrichten eines gemeinsamen Nuget-Paketordners für alle Lösungen, wenn einige Projekte in mehreren Lösungen enthalten sind

Ich habe NuGet verwendet, um Pakete von externen und internen Paketquellen abzurufen, was sehr praktisch ist. Ich habe jedoch festgestellt, dass die Pakete standardmäßig pro Lösung gespeichert werden, was sehr frustrierend ist, wenn einige Projekte mit NuGet-Referenzen in mehreren Lösungen enthalten sind. Anschließend werden die Verweise in einen anderen Lösungspaketordner geändert, der möglicherweise für einen anderen Entwickler oder Buildcomputer nicht verfügbar ist.

Ich habe gesehen, dass es mit der Version 2.1 von NuGet Möglichkeiten gibt, auf einen gemeinsamen Paketspeicherort hinzuweisen (vielleicht auf Projektstammebene verwenden wir die TFS-Quellcodeverwaltung), sieheVersionshinweise . Ich benutze NuGet v2.7

Ich habe jedoch versucht, nuget.config-Dateien hinzuzufügen, ohne dass dies Auswirkungen hat. Pakete werden weiterhin im Lösungsordner gespeichert. Was habe ich verpasst? Es scheint unterschiedliche Strukturen des XML-Knotens zu geben, die der Datei nuget.config hinzugefügt werden müssen, je nachdem, wer diese Frage beantwortet: Schwarzie schlägt aufein weiterer Stackoverflow-Thread:

<settings>
  <repositoryPath>..\..\[relative or absolute path]</repositoryPath>
</settings>

Die Versionshinweise für NuGet 2.1 (siehe Link oben) schlagen folgendes Format vor:

<configuration>
  <config>
    <add key="repositoryPath" value="..\..\[relative or absolute path]" />
  </config>
</configuration>

Ich weiß nicht, welche davon oder welche oder beide am Ende funktionieren werden. Ich habe beide auf Lösungsebene versucht. Kann die Datei nuget.config im Stammverzeichnis des TFS-Projekts abgelegt werden oder muss sie sich im Lösungsverzeichnis befinden? Es scheint, dass NuGet die Einstellungen aus diesen Dateien in einer bestimmten Reihenfolge liest und anwendet. Daher ist es sinnvoll, sie auf mehreren Ebenen hinzuzufügen, wobei eine Datei nuget.config auf Lösungsebene eine auf der TFS-Projektstammebene überschreibt. Kann das geklärt werden?

Muss ich alle installierten Pakete entfernen, bevor diese Referenzen funktionieren? Ich würde mich freuen, wenn jemand eine schrittweise Anleitung für den Übergang von der lösungsspezifischen Nuget-Verwendung zu einem gemeinsamen Paketordner bereitstellen könnte, in dem Projekte, die zu mehreren Lösungen gehören, die erforderlichen Nuget-Pakete finden können.

Antworten auf die Frage(13)

Ihre Antwort auf die Frage