Konfigurowanie wspólnego folderu pakietów nuget dla wszystkich rozwiązań, gdy niektóre projekty są zawarte w wielu rozwiązaniach

Używam NuGet do pobierania pakietów z zewnętrznych i wewnętrznych źródeł pakietów, co jest bardzo wygodne. Ale zdałem sobie sprawę, że pakiety są domyślnie przechowywane na rozwiązanie, co jest bardzo frustrujące, gdy niektóre projekty z odniesieniami NuGet są zawarte w kilku rozwiązaniach. Następnie odnośniki są zmieniane na folder pakietów innych rozwiązań, który może być w rzeczywistości niedostępny dla innego dewelopera lub maszyny do budowania.

Widziałem, że istnieją sposoby na wskazanie wspólnej lokalizacji pakietu (być może na poziomie głównym projektu, używamy kontroli źródła TFS) w wersji 2.1 NuGet, zobaczInformacje o wydaniu . Używam NuGet v2.7

Próbowałem jednak dodać pliki nuget.config bez żadnego efektu. Pakiety są nadal przechowywane w folderze rozwiązania. Czy jest coś, co przegapiłem? Wydaje się, że istnieją różne struktury węzła xml, które można dodać do pliku nuget.config, w zależności od tego, kto odpowiada na to pytanie: Schwarzie sugerujeinny wątek Stackoverflow:

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

Uwagi do wydania NuGet 2.1 (patrz link powyżej) sugerują ten format:

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

Nie wiem, który z nich, ani żaden, albo oba będą działać w końcu. Próbowałem obu na poziomie rozwiązania. Czy plik nuget.config można umieścić na poziomie głównym projektu TFS, czy może w katalogu rozwiązania? Wydaje się, że NuGet odczytuje i stosuje ustawienia z tych plików w określonej kolejności, dlatego sensowne byłoby dodanie ich na kilku poziomach, gdzie plik nuget.config na poziomie rozwiązania zastąpiłby jeden na poziomie głównym projektu TFS. Czy można to wyjaśnić?

Czy muszę usunąć wszystkie zainstalowane pakiety, zanim te odniesienia będą działać? Chciałbym, żeby ktoś mógł podać krok po kroku instrukcję przejścia od specyficznego dla rozwiązania użycia nugetu do wspólnego folderu, w którym projekty należące do kilku rozwiązań mogą znaleźć wymagane pakiety nuget.

questionAnswers(13)

yourAnswerToTheQuestion