TLDR: Ja
NuGet verwendet eine hierarchische Anwendung von Paketquellen, beginnend mit NuGet.config auf der Ebene Ihres Windows-Benutzerprofils, und wendet dann eine immer detailliertere Konfiguration an, beginnend am Stammverzeichnis des Dateipfads, der Ihre Lösung enthält, und endet schließlich mit dem Verzeichnis, das Ihre enthält Lösungsdatei.
Folgendes habe ich herausgefunden - mit freundlicher Genehmigung eines hilfreichen Twitterers, der mich auf dieses Dokument hinweist:
https://docs.nuget.org/consume/nuget-config-file
Wenn Sie die NuGet-Paketquellen in der Tools > NuGet Package Manager > Package Manager Settings: Package Sources
Option von Visual Studio bearbeiten , werden diese Änderungen standardmäßig auf die Datei NuGet.config in Ihrem %APPDATA%\NuGet
Verzeichnis angewendet . Um diese Einstellungen pro Lösung (oder pro Lösungsgruppe) zu überschreiben, müssen Sie eine strategisch platzierte NuGet.config-Datei irgendwo auf dem Pfad Ihrer Lösung oder Lösungen hinzufügen.
Wenn Sie das NuGet-Dokument lesen, wird alles klar. Mit der folgenden Lösung können Sie schnell eine Konfiguration für eine einzelne Visual Studio-Lösung angeben:
- Navigieren Sie zu% APPDATA% \ NuGet und holen Sie sich eine Kopie von NuGet.config
- Legen Sie eine Kopie im Stammverzeichnis Ihrer Lösung ab - dh dort, wo Application.sln lebt.
- Überschreiben Sie die auf Ihr Benutzerprofil angewendeten Standardeinstellungen, indem Sie die Kopie so bearbeiten, dass sie nur die für diese Lösung relevanten NuGet-Paketquellen enthält, z. B. die private NuGet-Quelle, die proprietäre Pakete für diese Lösung enthält, jedoch nicht auf andere Projekte angewendet werden sollte - zum Beispiel:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<packageRestore>
<add key="enabled" value="True" />
<add key="automatic" value="True" />
</packageRestore>
<activePackageSource>
<add key="All" value="(Aggregate source)" />
</activePackageSource>
<packageSources>
<clear />
<add key="My Private NuGet Server" value="http://myprivatenuget.com:8080/nuget" />
</packageSources>
<disabledPackageSources>
<add key="Microsoft and .NET" value="true" />
</disabledPackageSources>
</configuration>
Wenn Sie möchten , eine Konfiguration auf mehrere Lösungen anzuwenden, sicherzustellen , dass Ihre Lösung Ordner alle in einem gemeinsamen Verzeichnis enthalten sind , und legen Sie die NuGet.config für die Paketquellen relevant für diese Lösungen in diesem gemeinsamen Verzeichnis gewährleistet, dass jede Lösung Ordner für bestimmte Projekte , die aren ‚t diese Paketquellen zu verwenden , die nicht in diesem gemeinsamen Ordner enthält.