Wo befindet sich die Datei NuGet.Config im Visual Studio-Projekt?


76

Ich frage mich, wo sich die NuGet.Config-Datei im Visual Studio 2017- Projekt befindet. Ich habe versucht, meine eigene NuGet.Config-Datei im Stammverzeichnis des Projekts zu erstellen, aber keine neuen Repositorys (NuGet-Quellen) gefunden. Hat jemand eine Idee?

Hier ist die Datei, die ich für mein .Net Core- Projekt erreichen möchte :

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <packageSources>
    <add key="AspNetCore" value="https://dotnet.myget.org/F/aspnetcore-ci-dev/api/v3/index.json" />
    <add key="AspNetCoreTools" value="https://dotnet.myget.org/F/aspnetcore-tools/api/v3/index.json" />
    <add key="NuGet" value="https://api.nuget.org/v3/index.json" />
  </packageSources>
</configuration>

Antworten:


108

Visual Studio liest NuGet.Config-Dateien aus dem Lösungsstamm. Versuchen Sie, es dorthin zu verschieben, anstatt es im selben Ordner wie das Projekt abzulegen.

Sie können die Datei auch unter platzieren %appdata%\NuGet\NuGet.Configund sie wird überall verwendet.

https://docs.microsoft.com/en-us/nuget/schema/nuget-config-file


4
Hast du das mit versucht VS 2017? Ich habe das schon ohne Erfolg versucht. Wie kann ich die Änderungen tatsächlich feststellen? Vielleicht sind sie da, aber ich bemerke sie nicht (aber ich denke nicht).
Mohammed Noureldin

4
Pro Projekt funktionieren NuGet.Config-Dateien über die Befehlszeilenwiederherstellung, jedoch nicht in Visual Studio.
Justin Emgarten

7
@Justin Emgarten, Gibt es eine Dokumentation, in der die Idee "Pro Projekt NuGet.Config-Dateien funktionieren über die Befehlszeilenwiederherstellung, aber nicht in Visual Studio" angegeben wird und warum die repositoryPath-Einstellungen in NuGet.config nicht für jedes Projekt nur für jede Lösung funktionieren ? Vielen Dank.
Leo Liu-MSFT

3
Dies funktioniert nicht mit VS2017. VS sieht NuGet.config nicht im Lösungsstammordner.
Piotr Perak

8
Standardmäßig verwendet VS2017 die globale Datei Nuget.config unter Pfad C: \ Benutzer \ Ihr Benutzername \ AppData \ Roaming \ NuGet \ Nuget.config
Passagier

29

Es werden mehrere Nuget-Pakete in der folgenden Reihenfolge gelesen:

  1. Zuerst die NuGetDefaults.Config file. Sie finden dies in %ProgramFiles(x86)%\NuGet\Config.
  2. Die Datei auf Computerebene.
  3. Die Datei auf Benutzerebene. Sie finden dies in %APPDATA%\NuGet\nuget.config.
  4. Jede Datei mit dem Namen, die nuget.configvom Stammverzeichnis Ihres Laufwerks bis zum Verzeichnis reicht, in dem nuget.exe aufgerufen wird.
  5. Die Konfigurationsdatei, die Sie in der Option -configfile angeben, wenn Sie nuget.exe aufrufen

Weitere Informationen finden Sie hier .


3
Da es mich zunächst verwirrte, möchte ich klarstellen: Die hier aufgeführte Reihenfolge ist die Reihenfolge, in der Nuget seine Einstellungen lädt. Spätere Schritte überschreiben möglicherweise frühere Einstellungen. Wenn Sie also angeben, dass es --configfileimmer noch die Standarddatei, die Datei auf Maschinenebene usw. liest, berücksichtigt NuGet diese Optionen jedoch von unten nach oben, dh die --configfileGewinne im
Vergleich zur

3

Zusätzlich zu der akzeptierten Antwort möchte ich eine Information hinzufügen, dass sich NuGet-Pakete in Visual Studio 2017 in der Projektdatei selbst befinden. Klicken Sie mit der rechten Maustaste auf das Projekt -> Bearbeiten, um alle Paketreferenzeinträge zu finden.


3
Ich denke, Sie haben die Frage falsch verstanden. Die Frage ist, wo Sie die Datei nuget.config ablegen (in der alle Server aufgelistet sind, auf denen verfügbare Nugets zum Herunterladen verfügbar sind). Es wird nicht gefragt, in welcher Datei die installierten Nugets für Ihr Projekt aufgelistet sind.
Pure.Krome

5
@ Pure.Krome stimme zu, aber es ist aufregend, dass der Mann diese Antwort gepostet hat, von der du denkst, dass er die Frage missverstanden hat. Tatsächlich hat der Mann die Frage gestellt! ; D
S.Serpooshan

4
Ich verstecke mich verlegen.
Pure.Krome

1

Wenn Sie einen Proxy verwenden, müssen Sie die Datei Nuget.config bearbeiten.

In Windows 7 und 10 befindet sich diese Datei im Pfad:
C: \ Users \ YouUser \ AppData \ Roaming \ NuGet.

Fügen Sie die Einstellung hinzu:

<config>
  <add key = "http_proxy" value = "http://Youproxy:8080" />
  <add key = "http_proxy.user" value = "YouProxyUser" />
</config>

0

Ich habe eine Antwort für diesen Beitrag erstellt, die hilfreich sein könnte: https://stackoverflow.com/a/63816822/2399164

Zusammenfassung:

Ich bin etwas spät dran, aber ich glaube, ich habe eine einfache Lösung für dieses Problem gefunden ...

  1. Erstellen Sie eine "NuGet.Config" -Datei im selben Verzeichnis wie Ihre .sln
<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <packageSources>
    <add key="nuget.org" value="https://api.nuget.org/v3/index.json" protocolVersion="3" />
    <add key="{{CUSTOM NAME}}" value="{{CUSTOM SOURCE}}" />
  </packageSources>
  <packageRestore>
    <add key="enabled" value="True" />
    <add key="automatic" value="True" />
  </packageRestore>
  <bindingRedirects>
    <add key="skip" value="False" />
  </bindingRedirects>
  <packageManagement>
    <add key="format" value="0" />
    <add key="disabled" value="False" />
  </packageManagement>
</configuration>
  1. Das ist es! Erstellen Sie auch hier Ihr "Dockerfile"

  2. Führen Sie Docker Build mit Ihrer Docker-Datei aus, und alle werden behoben

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.